diff --git a/scripts/run_tests.py b/scripts/run_tests.py index 1c3acdca..d13359c5 100644 --- a/scripts/run_tests.py +++ b/scripts/run_tests.py @@ -1,6 +1,7 @@ import os import sys import time +import subprocess class WorkDir: def __init__(self, next): @@ -52,8 +53,29 @@ print('System:', '64-bit' if sys.maxsize > 2**32 else '32-bit') if len(sys.argv) == 2: assert 'benchmark' in sys.argv[1] - d = 'benchmarks/' + test_dir('benchmarks/') else: - d = 'tests/' -test_dir(d) + test_dir('tests/') + + # test interactive mode + print("[REPL Test Enabled]") + if sys.platform in ['linux', 'darwin']: + res = subprocess.run(['./main'], encoding='utf-8', input=r''' +def add(a, b): + return a + b + +class A: + def __init__(self, x): + self.x = x + + def get(self): + return self.x + + +print(add(1, 2)) +print(A('abc').get()) +''', capture_output=True, check=True) + res.check_returncode() + assert res.stdout.endswith('>>> 3\n>>> abc\n>>> ') + print("ALL TESTS PASSED") \ No newline at end of file