|
1 | | -#!/usr/bin/env bash |
2 | | - |
3 | | -RM="/bin/rm -f" |
4 | | -CPYTHON3=python3.3 |
5 | | -MP_PY=../unix/micropython |
6 | | - |
7 | | -numtests=0 |
8 | | -numtestcases=0 |
9 | | -numpassed=0 |
10 | | -numfailed=0 |
11 | | -namefailed= |
12 | | - |
13 | | -if [ $# -eq 0 ] |
14 | | -then |
15 | | - tests="basics/*.py io/*.py" |
16 | | -else |
17 | | - tests="$@" |
18 | | -fi |
19 | | - |
20 | | -for infile in $tests |
21 | | -do |
22 | | - basename=`basename $infile .py` |
23 | | - outfile=${basename}.out |
24 | | - expfile=${basename}.exp |
25 | | - |
26 | | - $CPYTHON3 -B $infile > $expfile |
27 | | - $MP_PY $infile > $outfile |
28 | | - ((numtestcases = numtestcases + $(cat $expfile | wc -l))) |
29 | | - |
30 | | - diff --brief $expfile $outfile > /dev/null |
31 | | - |
32 | | - if [ $? -eq 0 ] |
33 | | - then |
34 | | - echo "pass $infile" |
35 | | - $RM $outfile |
36 | | - $RM $expfile |
37 | | - ((numpassed=numpassed + 1)) |
38 | | - else |
39 | | - echo "FAIL $infile" |
40 | | - ((numfailed=numfailed + 1)) |
41 | | - namefailed="$namefailed $basename" |
42 | | - fi |
43 | | - |
44 | | - ((numtests=numtests + 1)) |
45 | | -done |
46 | | - |
47 | | -echo "$numtests tests performed ($numtestcases individual testcases)" |
48 | | -echo "$numpassed tests passed" |
49 | | -if [[ $numfailed != 0 ]] |
50 | | -then |
51 | | - echo "$numfailed tests failed -$namefailed" |
52 | | - exit 1 |
53 | | -else |
54 | | - exit 0 |
55 | | -fi |
| 1 | +#! /usr/bin/env python3.3 |
| 2 | + |
| 3 | +import os |
| 4 | +import subprocess |
| 5 | +import sys |
| 6 | +from glob import glob |
| 7 | + |
| 8 | +if os.name == 'nt': |
| 9 | + CPYTHON3 = 'python3.3.exe' |
| 10 | + MP_PY = '../windows/micropython.exe' |
| 11 | +else: |
| 12 | + CPYTHON3 = 'python3.3' |
| 13 | + MP_PY = '../unix/micropython' |
| 14 | + |
| 15 | + |
| 16 | +test_count = 0 |
| 17 | +testcase_count = 0 |
| 18 | +passed_count = 0 |
| 19 | +failed_tests = [] |
| 20 | +tests = [] |
| 21 | + |
| 22 | +if not sys.argv[1:]: |
| 23 | + tests = glob('basics/*.py') + glob('io/*.py') |
| 24 | +else: |
| 25 | + tests = sys.argv[1:] |
| 26 | + |
| 27 | +for test_file in tests: |
| 28 | + test_name = os.path.splitext(os.path.basename(test_file))[0] |
| 29 | + |
| 30 | + output_expected = subprocess.check_output([CPYTHON3, '-B', test_file]) |
| 31 | + output_mypy = subprocess.check_output([MP_PY, test_file]) |
| 32 | + |
| 33 | + testcase_count += len(output_expected.splitlines()) |
| 34 | + |
| 35 | + if output_expected != output_mypy: |
| 36 | + print("pass ", test_file) |
| 37 | + passed_count += 1 |
| 38 | + else: |
| 39 | + print("FAIL ", test_file) |
| 40 | + failed_tests.append(test_name) |
| 41 | + |
| 42 | + test_count += 1 |
| 43 | + |
| 44 | +print("{} tests performed ({} individual testcases)".format(test_count, |
| 45 | + testcase_count)) |
| 46 | +print("{} tests passed".format(passed_count)) |
| 47 | + |
| 48 | +if len(failed_tests) > 0: |
| 49 | + print("{} tests failed: {}".format(len(failed_tests), |
| 50 | + ' '.join(failed_tests))) |
| 51 | + sys.exit(1) |
0 commit comments