simple script(s) to check if bsearch tables are sorted correctly

This commit is contained in:
mrdudz
2025-06-09 18:26:41 +02:00
parent ba80de5efc
commit d368f3d0ea
4 changed files with 170 additions and 2 deletions

42
.github/checks/sorted_codeopt.sh vendored Executable file
View File

@@ -0,0 +1,42 @@
#! /bin/bash
OLDCWD=`pwd`
SCRIPT_PATH=`dirname $0`
CHECK_FILE=../../src/cc65/codeopt.c
SORT_OPT=-u
grep "^static OptFunc " $CHECK_FILE | \
sed -e 's:.*"\(.*\)",.*:\1:g' > .a.tmp
if [[ -z $(grep '[^[:space:]]' .a.tmp) ]] ; then
echo "error: OptFunc table is empty"
exit -1
fi
LC_COLLATE=C sort $SORT_OPT .a.tmp > .b.tmp
if cmp --silent -- .a.tmp .b.tmp; then
echo "static OptFunc definitions OK"
else
echo "error: static OptFunc definitions are not sorted."
diff -y .a.tmp .b.tmp
exit -1
fi
awk '/static OptFunc\* OptFuncs\[\] = {/{flag=1;next}/}/{flag=0}flag' $CHECK_FILE | \
sed -e 's:.*&D\(.*\),:\1:g' > .a.tmp
if [[ -z $(grep '[^[:space:]]' .a.tmp) ]] ; then
echo "error: OptFuncs table is empty"
exit -1
fi
if cmp --silent -- .a.tmp .b.tmp; then
echo "static OptFuncs* OptFuncs[] definitions OK"
else
echo "error: static OptFuncs* OptFuncs[] definitions are not sorted."
diff -y .a.tmp .b.tmp
exit -1
fi
rm -rf .a.tmp .b.tmp