Skip to content

Commit a1760a5

Browse files
committed
test: Add run-tests-exp.sh, script to run testsuite with only sh dependency.
This script uses expected test results as generated by run-tests --write-exp, and requires only standard unix shell funtionality (no bash). It is useful to run testsuite on embedded systems, where there's no CPython and Bash.
1 parent b82f34e commit a1760a5

1 file changed

Lines changed: 57 additions & 0 deletions

File tree

tests/run-tests-exp.sh

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#!/bin/sh
2+
#
3+
# This is plain shell variant of run-tests script, which uses .exp files
4+
# as generated by run-tests --write-exp. It is useful to run testsuite
5+
# on embedded systems which doesn't have CPython3.
6+
#
7+
8+
RM="rm -f"
9+
MP_PY=micropython
10+
11+
numtests=0
12+
numtestcases=0
13+
numpassed=0
14+
numfailed=0
15+
namefailed=
16+
17+
if [ $# -eq 0 ]
18+
then
19+
tests="basics/*.py micropython/*.py float/*.py import/*.py io/*.py misc/*.py"
20+
else
21+
tests="$@"
22+
fi
23+
24+
for infile in $tests
25+
do
26+
basename=`basename $infile .py`
27+
outfile=${basename}.out
28+
expfile=$infile.exp
29+
30+
$MP_PY $infile > $outfile
31+
numtestcases=$(expr $numtestcases + $(cat $expfile | wc -l))
32+
33+
diff --brief $expfile $outfile > /dev/null
34+
35+
if [ $? -eq 0 ]
36+
then
37+
echo "pass $infile"
38+
$RM $outfile
39+
numpassed=$(expr $numpassed + 1)
40+
else
41+
echo "FAIL $infile"
42+
numfailed=$(expr $numfailed + 1)
43+
namefailed="$namefailed $basename"
44+
fi
45+
46+
numtests=$(expr $numtests + 1)
47+
done
48+
49+
echo "$numtests tests performed ($numtestcases individual testcases)"
50+
echo "$numpassed tests passed"
51+
if [ $numfailed != 0 ]
52+
then
53+
echo "$numfailed tests failed -$namefailed"
54+
exit 1
55+
else
56+
exit 0
57+
fi

0 commit comments

Comments
 (0)