Added double curly braces for pragma (kept single curly braces for compatibility). Added macro def and undef surrounding pragma to simplify user code. Moved useless comment from generated code back to code generator.
#!/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