26 lines
628 B
Bash
26 lines
628 B
Bash
![]() |
#!/bin/sh
|
||
|
if [ ! -f $1 ]
|
||
|
then
|
||
|
echo "no test file $1"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
TESTNAME="`echo $1 | sed 's/\.t$//'`"
|
||
|
echo $TESTNAME...
|
||
|
|
||
|
awk '{ if ($1 == "%%") hide = 1; if (hide != 1) print; }' <$TESTNAME.t >$TESTNAME.c
|
||
|
awk '{ if (show == 1) print; if ($1 == "%%") show = 1; }' <$TESTNAME.t >$TESTNAME.expect
|
||
|
|
||
|
../picoc $TESTNAME.c 2>&1 >$TESTNAME.out
|
||
|
|
||
|
if [ "x`diff -q $TESTNAME.expect $TESTNAME.out`" != "x" ]
|
||
|
then
|
||
|
echo "error in test $TESTNAME"
|
||
|
diff -u $TESTNAME.expect $TESTNAME.out
|
||
|
rm -f $TESTNAME.c $TESTNAME.expect $TESTNAME.out
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
rm -f $TESTNAME.c $TESTNAME.expect $TESTNAME.out
|
||
|
|