|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
RM="/bin/rm -f"
|
|
|
|
CPYTHON3=python3.3
|
|
|
|
MP_PY=../unix/micropython
|
|
|
|
|
|
|
|
numtests=0
|
|
|
|
numtestcases=0
|
|
|
|
numpassed=0
|
|
|
|
numfailed=0
|
|
|
|
namefailed=
|
|
|
|
|
|
|
|
if [ $# -eq 0 ]
|
|
|
|
then
|
|
|
|
tests="basics/*.py io/*.py"
|
|
|
|
else
|
|
|
|
tests="$@"
|
|
|
|
fi
|
|
|
|
|
|
|
|
for infile in $tests
|
|
|
|
do
|
|
|
|
basename=`basename $infile .py`
|
|
|
|
outfile=${basename}.out
|
|
|
|
expfile=${basename}.exp
|
|
|
|
|
|
|
|
$CPYTHON3 -B $infile > $expfile
|
|
|
|
$MP_PY $infile > $outfile
|
|
|
|
((numtestcases = numtestcases + $(cat $expfile | wc -l)))
|
|
|
|
|
|
|
|
diff --brief $expfile $outfile > /dev/null
|
|
|
|
|
|
|
|
if [ $? -eq 0 ]
|
|
|
|
then
|
|
|
|
echo "pass $infile"
|
|
|
|
$RM $outfile
|
|
|
|
$RM $expfile
|
|
|
|
((numpassed=numpassed + 1))
|
|
|
|
else
|
|
|
|
echo "FAIL $infile"
|
|
|
|
((numfailed=numfailed + 1))
|
|
|
|
namefailed="$namefailed $basename"
|
|
|
|
fi
|
|
|
|
|
|
|
|
((numtests=numtests + 1))
|
|
|
|
done
|
|
|
|
|
|
|
|
echo "$numtests tests performed ($numtestcases individual testcases)"
|
|
|
|
echo "$numpassed tests passed"
|
|
|
|
if [[ $numfailed != 0 ]]
|
|
|
|
then
|
|
|
|
echo "$numfailed tests failed -$namefailed"
|
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
exit 0
|
|
|
|
fi
|