Hash :
d72caebf
Author :
Thomas de Grivel
Date :
2023-12-13T23:56:40
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
#!/bin/sh
cd "$(dirname $0)/ic3" || exit
TEST_COLOR_KO="[0;91m"
TEST_COLOR_OK="[0;92m"
TEST_COLOR_RESET="[0m"
TEST_COUNT=0
TEST_KO=0
TEST_OK=0
if [ "x$IC3" = "x" ]; then
if [ -f ../../ic3/ic3 ]; then
IC3=../../ic3/ic3
elif [ -f ../../ic3 ]; then
IC3=../../ic3
fi
fi
test_ko() {
printf "%s" "${TEST_COLOR_KO}F${TEST_COLOR_RESET}"
TEST_KO=$(($TEST_KO + 1))
TEST_COUNT=$(($TEST_COUNT + 1))
}
test_ok() {
printf "%s" "${TEST_COLOR_OK}.${TEST_COLOR_RESET}"
TEST_OK=$(($TEST_OK + 1))
TEST_COUNT=$(($TEST_COUNT + 1))
}
if [ $# = 0 ]; then
if [ "x${IC3_TEST_TARGETS}" = "x" ]; then
TARGETS="$(ls -1 *.in | sed -e 's/[.]in$//')"
else
TARGETS="${IC3_TEST_TARGETS}"
fi
else
TARGETS="$@"
fi
for TARGET in $TARGETS; do
RESULT=test_ok
$IC3 < ${TARGET}.in > ${TARGET}.out 2>&1
echo $? > ${TARGET}.ret
if ! diff -abu ${TARGET}.out.expected ${TARGET}.out > ${TARGET}.diff
then
RESULT=test_ko
fi
if ! diff -abu ${TARGET}.ret.expected ${TARGET}.ret >> ${TARGET}.diff
then
RESULT=test_ko
fi
if [ "x$RESULT" = "xtest_ok" ]; then
rm ${TARGET}.diff
test_ok
else
test_ko
fi
done
echo
DIFFS="$(for TARGET in $TARGETS; do
if [ -f "${TARGET}.diff" ]; then
printf "%s " "${TARGET}.diff"
fi
done)"
if [ "x$DIFFS" != "x" ]; then
ls $DIFFS
less $DIFFS || cat $DIFFS
fi
echo
printf "%s" "Total $TEST_COUNT tests. "
printf "%s" "${TEST_COLOR_OK}OK $TEST_OK ($(($TEST_OK * 100 / $TEST_COUNT))%)${TEST_COLOR_RESET}. "
echo "${TEST_COLOR_KO}KO $TEST_KO ($(($TEST_KO * 100 / $TEST_COUNT))%)${TEST_COLOR_RESET}."
if [ "x$TEST_KO" = "x0" ]; then
exit 0
fi
exit 1