diff --git a/scripts/run_tests.py b/scripts/run_tests.py index 9232c7e7..3b37be18 100644 --- a/scripts/run_tests.py +++ b/scripts/run_tests.py @@ -3,14 +3,12 @@ import sys import time import subprocess +pkpy_exe = 'main.exe' if sys.platform == 'win32' else './main' def test_file(filepath, cpython=False): if cpython: return os.system("python " + filepath) == 0 - if sys.platform == 'win32': - code = os.system("main.exe " + filepath) - else: - code = os.system("./main " + filepath) + code = os.system(pkpy_exe + ' ' + filepath) if code != 0: print('Return code:', code) return code == 0 @@ -18,7 +16,7 @@ def test_file(filepath, cpython=False): def test_dir(path): print("Testing directory:", path) for filename in sorted(os.listdir(path)): - if not filename.endswith('.py'): + if not filename.endswith('.py') and not filename.endswith('.pyc'): continue filepath = os.path.join(path, filename) print("> " + filepath, flush=True) @@ -76,6 +74,8 @@ exit() print(res.stdout) exit(1) +code = os.system(f'python compileall.py {pkpy_exe} tests tmp/tests') +assert code == 0 if len(sys.argv) == 2: assert 'benchmark' in sys.argv[1] @@ -84,5 +84,11 @@ else: test_dir('tests/') test_repl() + if os.path.exists('tmp/tests'): + print('-' * 50) + time.sleep(3) + test_dir('tmp/tests/') + + print("ALL TESTS PASSED") diff --git a/tests/801_sys.py b/tests/801_sys.py index 9b0912b1..e329f7b8 100644 --- a/tests/801_sys.py +++ b/tests/801_sys.py @@ -1,5 +1,7 @@ import sys -filename = 'tests/801_sys.py' -assert (sys.argv == [filename]), sys.argv +assert (sys.argv in [ + ['tests/801_sys.py'], + ['tmp/tests/801_sys.pyc'], + ]), sys.argv diff --git a/tests/802_traceback.py b/tests/802_traceback.py index 42750226..79ee3733 100644 --- a/tests/802_traceback.py +++ b/tests/802_traceback.py @@ -1,4 +1,8 @@ import traceback +import sys + +if sys.argv[0].endswith('.pyc'): + exit() try: a = {'123': 4} @@ -7,7 +11,7 @@ except KeyError: actual = traceback.format_exc() expected = '''Traceback (most recent call last): - File "tests/802_traceback.py", line 5 + File "tests/802_traceback.py", line 9 b = a[6] KeyError: 6'''