diff options
author | Damien George <damien@micropython.org> | 2024-09-04 17:13:55 +1000 |
---|---|---|
committer | Damien George <damien@micropython.org> | 2024-09-19 13:36:04 +1000 |
commit | 1be38e8077cd83f289d5c43d3735790735d2bae4 (patch) | |
tree | 34f31012586ab2e68e3e514d215e5672d86a633c | |
parent | 067ef81cd0a59aac9027e26e0f8220e5074ec033 (diff) | |
download | micropython-1be38e8077cd83f289d5c43d3735790735d2bae4.tar.gz micropython-1be38e8077cd83f289d5c43d3735790735d2bae4.zip |
tests/run-tests.py: Remove --write-exp and --list-tests options.
Removing the now-unused (see previous commit for details) `--write-exp` and
`--list-tests` options helps to simplify the rather complex logic in
`run-tests.py`.
Signed-off-by: Damien George <damien@micropython.org>
-rw-r--r-- | tests/run-tests-exp.py | 94 | ||||
-rwxr-xr-x | tests/run-tests-exp.sh | 73 | ||||
-rwxr-xr-x | tests/run-tests.py | 35 |
3 files changed, 4 insertions, 198 deletions
diff --git a/tests/run-tests-exp.py b/tests/run-tests-exp.py deleted file mode 100644 index bbb057f4ce..0000000000 --- a/tests/run-tests-exp.py +++ /dev/null @@ -1,94 +0,0 @@ -# -# This is minimal MicroPython variant of run-tests.py script, which uses -# .exp files as generated by run-tests.py --write-exp. It is useful to run -# testsuite on systems which have neither CPython3 nor unix shell. -# This script is intended to be run by the same interpreter executable -# which is to be tested, so should use minimal language functionality. -# -import sys -import os - - -tests = ["basics", "micropython", "float", "import", "io", " misc", "unicode", "extmod", "unix"] - -if sys.platform == "win32": - MICROPYTHON = "micropython.exe" -else: - MICROPYTHON = "micropython" - - -def should_skip(test): - if test.startswith("native"): - return True - if test.startswith("viper"): - return True - - -test_count = 0 -passed_count = 0 -skip_count = 0 - -for suite in tests: - # print("Running in: %s" % suite) - if sys.platform == "win32": - # dir /b prints only contained filenames, one on a line - # http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/dir.mspx - r = os.system("dir /b %s/*.py >tests.lst" % suite) - else: - r = os.system("ls %s/*.py | xargs -n1 basename >tests.lst" % suite) - assert r == 0 - - with open("tests.lst") as f: - testcases = f.readlines() - testcases = [l[:-1] for l in testcases] - assert testcases, "No tests found in dir '%s', which is implausible" % suite - # print(testcases) - for t in testcases: - if t == "native_check.py": - continue - - qtest = "%s/%s" % (suite, t) - - if should_skip(t): - print("skip " + qtest) - skip_count += 1 - continue - - exp = None - try: - f = open(qtest + ".exp") - exp = f.read() - f.close() - except OSError: - pass - - if exp is not None: - # print("run " + qtest) - r = os.system(MICROPYTHON + " %s >.tst.out" % qtest) - if r == 0: - f = open(".tst.out") - out = f.read() - f.close() - else: - out = "CRASH" - - if out == "SKIP\n": - print("skip " + qtest) - skip_count += 1 - else: - if out == exp: - print("pass " + qtest) - passed_count += 1 - else: - print("FAIL " + qtest) - - test_count += 1 - else: - skip_count += 1 - -print("%s tests performed" % test_count) -print("%s tests passed" % passed_count) -if test_count != passed_count: - print("%s tests failed" % (test_count - passed_count)) -if skip_count: - print("%s tests skipped" % skip_count) diff --git a/tests/run-tests-exp.sh b/tests/run-tests-exp.sh deleted file mode 100755 index 177090cd8d..0000000000 --- a/tests/run-tests-exp.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/sh -# -# This is plain shell variant of run-tests.py script, which uses .exp files -# as generated by run-tests.py --write-exp. It is useful to run testsuite -# on embedded systems which don't have CPython3. -# - -RM="rm -f" -MP_PY=micropython - -numtests=0 -numtestcases=0 -numpassed=0 -numskipped=0 -numfailed=0 -nameskipped= -namefailed= - -if [ $# -eq 0 ] -then - tests="basics/*.py micropython/*.py float/*.py import/*.py io/*.py misc/*.py unicode/*.py extmod/*.py unix/*.py" -else - tests="$@" -fi - -for infile in $tests -do - basename=`basename $infile .py` - outfile=${basename}.py.out - expfile=$infile.exp - - $MP_PY $infile > $outfile - numtestcases=$(expr $numtestcases + $(cat $expfile | wc -l)) - - if grep -q "SKIP\|SyntaxError: invalid micropython decorator" $outfile - then - # we don't count tests that explicitly ask to be skipped - # we don't count tests that fail due to unsupported decorator - echo "skip $infile" - $RM $outfile - numskipped=$(expr $numskipped + 1) - nameskipped="$nameskipped $basename" - else - 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 - fi - - numtests=$(expr $numtests + 1) -done - -echo "$numtests tests performed ($numtestcases individual testcases)" -echo "$numpassed tests passed" -if [ $numskipped != 0 ] -then - echo "$numskipped tests skipped -$nameskipped" -fi -if [ $numfailed != 0 ] -then - echo "$numfailed tests failed -$namefailed" - exit 1 -else - exit 0 -fi diff --git a/tests/run-tests.py b/tests/run-tests.py index 7190d3bc31..07280666dc 100755 --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -465,9 +465,7 @@ def run_tests(pyb, tests, args, result_dir, num_threads=1): upy_float_precision = 32 - # If we're asked to --list-tests, we can't assume that there's a - # connection to target, so we can't run feature checks usefully. - if not (args.list_tests or args.write_exp): + if True: # Even if we run completely different tests in a different directory, # we need to access feature_checks from the same directory as the # run-tests.py script itself so use base_path. @@ -797,11 +795,6 @@ def run_tests(pyb, tests, args, result_dir, num_threads=1): skip_it |= skip_io_module and is_io_module skip_it |= skip_fstring and is_fstring - if args.list_tests: - if not skip_it: - print(test_file) - return - if skip_it: print("skip ", test_file) skipped_tests.append(test_name) @@ -821,18 +814,12 @@ def run_tests(pyb, tests, args, result_dir, num_threads=1): cwd=os.path.dirname(test_file), stderr=subprocess.STDOUT, ) - if args.write_exp: - with open(test_file_expected, "wb") as f: - f.write(output_expected) except subprocess.CalledProcessError: output_expected = b"CPYTHON3 CRASH" # canonical form for all host platforms is to use \n for end-of-line output_expected = output_expected.replace(b"\r\n", b"\n") - if args.write_exp: - return - # run MicroPython output_mupy = run_micropython(pyb, args, test_file, test_file_abspath) @@ -861,7 +848,7 @@ def run_tests(pyb, tests, args, result_dir, num_threads=1): test_count.increment() - if pyb or args.list_tests: + if pyb: num_threads = 1 if num_threads > 1: @@ -871,10 +858,6 @@ def run_tests(pyb, tests, args, result_dir, num_threads=1): for test in tests: run_one_test(test) - # Leave RESULTS_FILE untouched here for future runs. - if args.list_tests: - return True - print( "{} tests performed ({} individual testcases)".format( test_count.value, testcase_count.value @@ -984,14 +967,6 @@ the last matching regex is used: help="include test by regex on path/name.py", ) cmd_parser.add_argument( - "--write-exp", - action="store_true", - help="use CPython to generate .exp files to run tests w/o CPython", - ) - cmd_parser.add_argument( - "--list-tests", action="store_true", help="list tests instead of running them" - ) - cmd_parser.add_argument( "--emit", default="bytecode", help="MicroPython emitter to use (bytecode or native)" ) cmd_parser.add_argument("--heapsize", help="heapsize to use (use default if not specified)") @@ -1062,9 +1037,7 @@ the last matching regex is used: "rp2", "zephyr", ) - if args.list_tests: - pyb = None - elif args.target in LOCAL_TARGETS: + if args.target in LOCAL_TARGETS: pyb = None if args.target == "webassembly": pyb = PyboardNodeRunner() @@ -1080,7 +1053,7 @@ the last matching regex is used: raise ValueError("target must be one of %s" % ", ".join(LOCAL_TARGETS + EXTERNAL_TARGETS)) # Automatically detect the native architecture for mpy-cross if not given. - if not (args.list_tests or args.write_exp) and not args.mpy_cross_flags: + if not args.mpy_cross_flags: output = run_feature_check(pyb, args, "target_info.py") arch = str(output, "ascii").strip() if arch != "None": |