tests/syntax/identifier/runtests
author Edouard Tisserant
Tue, 14 Dec 2021 08:48:05 +0100
changeset 1096 fad6e7a818e2
parent 258 d7d92b2f87e9
permissions -rwxr-xr-x
Variable forcing now uses limited list and buffer instead of systematical instance tree traversal and in-tree "fvalue" to keep track of forced value for pointed variables (external, located). Pointer swapping is performed when forcing externals and located, with backup being restored when forcing is reset. Match Beremiz commit 93ad018fb602.
#!/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