Correctly identify errors when parsing erroneous code (make sure flex goes back to INITIAL state when code contains errors that do not allow determining whether ST or IL is being parsed)
#!/bin/bash
# assume no error to start with...
error=0
for ff in `ls *.test`
do
for id in `cat $ff | grep "^#" | sed "s/#[^ ]*//g"`
do
sed s/XXXX/$id/g $ff > $ff"_"$id.iec
if `../../../iec2iec $ff"_"$id.iec -I ../../../lib > $ff"_"$id.out 2>$ff"_"$id.err`
#if `../../../iec2c $ff"_"$id.iec -I ../../../lib > $ff"_"$id.out 2>$ff"_"$id.err`
# TODO before deciding test is success [OK]
# - test whether xxx.out has size <> 0
# - test whether xxx.err has size == 0
# - (?) test whether xxx.out2 is identical to xxx.out
# - (?) test whether xxx.err2 has size == 0
# - perhaps produce a [WARN] instead of [ERROR] in cases of (?)
then echo "[ O K ] " $ff "->" $id
else echo "[ERROR] " $ff "->" $id; error=1
fi
# ../../../iec2iec $ff"_"$id.out -I ../../../lib > $ff"_"$id.out2 2>$ff"_"$id.err2
done
done
echo
if `test $error = 1`
then echo "FAILURE -> At least one of the tests failed!"
else echo "SUCCESS -> All tests passed!"
fi