929a675a3d
I upgraded to Python 3.4.0, so needed to make these changes. Hopefully the tests still run with Python 3.3.x (the scripts use python3 so are agnostic as to the subversion). Bytecode tests are tightly coupled to the Python version, and now some fail against Python 3.4.
62 lines
1.7 KiB
Python
Executable File
62 lines
1.7 KiB
Python
Executable File
#! /usr/bin/env python3
|
|
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
from glob import glob
|
|
|
|
if os.name == 'nt':
|
|
CPYTHON3 = 'python3.exe'
|
|
MP_PY = '../windows/micropython.exe'
|
|
else:
|
|
CPYTHON3 = 'python3'
|
|
MP_PY = '../unix/micropython'
|
|
|
|
def rm_f(fname):
|
|
if os.path.exists(fname):
|
|
os.remove(fname)
|
|
|
|
test_count = 0
|
|
testcase_count = 0
|
|
passed_count = 0
|
|
failed_tests = []
|
|
tests = []
|
|
|
|
if not sys.argv[1:]:
|
|
tests = sorted(glob('basics/*.py') + glob('io/*.py') + glob('misc/*.py'))
|
|
else:
|
|
tests = sys.argv[1:]
|
|
|
|
for test_file in tests:
|
|
test_name = os.path.splitext(os.path.basename(test_file))[0]
|
|
|
|
output_expected = subprocess.check_output([CPYTHON3, '-B', test_file])
|
|
try:
|
|
output_mupy = subprocess.check_output([MP_PY, test_file])
|
|
except subprocess.CalledProcessError:
|
|
output_mupy = b'CRASH'
|
|
|
|
testcase_count += len(output_expected.splitlines())
|
|
|
|
if output_expected == output_mupy:
|
|
print("pass ", test_file)
|
|
passed_count += 1
|
|
rm_f(os.path.basename(test_file + ".exp"))
|
|
rm_f(os.path.basename(test_file + ".out"))
|
|
else:
|
|
with open(os.path.basename(test_file + ".exp"), "w") as f:
|
|
f.write(str(output_expected, "ascii"))
|
|
with open(os.path.basename(test_file + ".out"), "w") as f:
|
|
f.write(str(output_mupy, "ascii"))
|
|
print("FAIL ", test_file)
|
|
failed_tests.append(test_name)
|
|
|
|
test_count += 1
|
|
|
|
print("{} tests performed ({} individual testcases)".format(test_count, testcase_count))
|
|
print("{} tests passed".format(passed_count))
|
|
|
|
if len(failed_tests) > 0:
|
|
print("{} tests failed: {}".format(len(failed_tests), ' '.join(failed_tests)))
|
|
sys.exit(1)
|