summaryrefslogtreecommitdiffstatshomepage
path: root/tests/run-tests-exp.sh
blob: 032c42dd3bb45d9109aa9246e8da79b092e6a501 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/sh
#
# This is plain shell variant of run-tests script, which uses .exp files
# as generated by run-tests --write-exp. It is useful to run testsuite
# on embedded systems which doesn't have CPython3.
#

RM="rm -f"
MP_PY=micropython

numtests=0
numtestcases=0
numpassed=0
numfailed=0
namefailed=

if [ $# -eq 0 ]
then
    tests="basics/*.py micropython/*.py float/*.py import/*.py io/*.py misc/*.py"
else
    tests="$@"
fi

for infile in $tests
do
    basename=`basename $infile .py`
    outfile=${basename}.out
    expfile=$infile.exp

    $MP_PY $infile > $outfile
    numtestcases=$(expr $numtestcases + $(cat $expfile | wc -l))

    diff --brief $expfile $outfile > /dev/null

    if [ $? -eq 0 ]
    then
        echo "pass  $infile"
        $RM $outfile
        numpassed=$(expr $numpassed + 1)
    else
        echo "FAIL  $infile"
        numfailed=$(expr $numfailed + 1)
        namefailed="$namefailed $basename"
    fi

    numtests=$(expr $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