tests/feature_check: Check for lack of pass result rather than failure.
Commit cb68a5741a
broke automatic Python
feature detection when running tests, because some detection relied on a
crash of a feature script returning exactly b"CRASH".
This commit fixes this and improves the situation by testing for the lack
of a known pass result, rather than an exact failure result.
Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
parent
7f366a2190
commit
8459f538eb
@ -1,3 +1,6 @@
|
|||||||
# check if async/await keywords are supported
|
# check if async/await keywords are supported
|
||||||
async def foo():
|
async def foo():
|
||||||
await 1
|
await 1
|
||||||
|
|
||||||
|
|
||||||
|
print("async")
|
||||||
|
@ -1 +1,2 @@
|
|||||||
x = const(1)
|
x = const(1)
|
||||||
|
print(x)
|
||||||
|
@ -2,3 +2,7 @@
|
|||||||
@micropython.native
|
@micropython.native
|
||||||
def f():
|
def f():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
f()
|
||||||
|
print("native")
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
# check if set literal syntax is supported
|
# check if set literal syntax is supported
|
||||||
{1}
|
print({1})
|
||||||
|
@ -279,7 +279,7 @@ def run_tests(pyb, tests, args, result_dir):
|
|||||||
|
|
||||||
# Check if micropython.native is supported, and skip such tests if it's not
|
# Check if micropython.native is supported, and skip such tests if it's not
|
||||||
output = run_feature_check(pyb, args, base_path, "native_check.py")
|
output = run_feature_check(pyb, args, base_path, "native_check.py")
|
||||||
if output == b"CRASH":
|
if output != b"native\n":
|
||||||
skip_native = True
|
skip_native = True
|
||||||
|
|
||||||
# Check if arbitrary-precision integers are supported, and skip such tests if it's not
|
# Check if arbitrary-precision integers are supported, and skip such tests if it's not
|
||||||
@ -294,7 +294,7 @@ def run_tests(pyb, tests, args, result_dir):
|
|||||||
|
|
||||||
# Check if set type (and set literals) is supported, and skip such tests if it's not
|
# Check if set type (and set literals) is supported, and skip such tests if it's not
|
||||||
output = run_feature_check(pyb, args, base_path, "set_check.py")
|
output = run_feature_check(pyb, args, base_path, "set_check.py")
|
||||||
if output == b"CRASH":
|
if output != b"{1}\n":
|
||||||
skip_set_type = True
|
skip_set_type = True
|
||||||
|
|
||||||
# Check if slice is supported, and skip such tests if it's not
|
# Check if slice is supported, and skip such tests if it's not
|
||||||
@ -304,12 +304,12 @@ def run_tests(pyb, tests, args, result_dir):
|
|||||||
|
|
||||||
# Check if async/await keywords are supported, and skip such tests if it's not
|
# Check if async/await keywords are supported, and skip such tests if it's not
|
||||||
output = run_feature_check(pyb, args, base_path, "async_check.py")
|
output = run_feature_check(pyb, args, base_path, "async_check.py")
|
||||||
if output == b"CRASH":
|
if output != b"async\n":
|
||||||
skip_async = True
|
skip_async = True
|
||||||
|
|
||||||
# Check if const keyword (MicroPython extension) is supported, and skip such tests if it's not
|
# Check if const keyword (MicroPython extension) is supported, and skip such tests if it's not
|
||||||
output = run_feature_check(pyb, args, base_path, "const.py")
|
output = run_feature_check(pyb, args, base_path, "const.py")
|
||||||
if output == b"CRASH":
|
if output != b"1\n":
|
||||||
skip_const = True
|
skip_const = True
|
||||||
|
|
||||||
# Check if __rOP__ special methods are supported, and skip such tests if it's not
|
# Check if __rOP__ special methods are supported, and skip such tests if it's not
|
||||||
@ -334,10 +334,10 @@ def run_tests(pyb, tests, args, result_dir):
|
|||||||
|
|
||||||
upy_byteorder = run_feature_check(pyb, args, base_path, "byteorder.py")
|
upy_byteorder = run_feature_check(pyb, args, base_path, "byteorder.py")
|
||||||
upy_float_precision = run_feature_check(pyb, args, base_path, "float.py")
|
upy_float_precision = run_feature_check(pyb, args, base_path, "float.py")
|
||||||
if upy_float_precision == b"CRASH":
|
try:
|
||||||
upy_float_precision = 0
|
|
||||||
else:
|
|
||||||
upy_float_precision = int(upy_float_precision)
|
upy_float_precision = int(upy_float_precision)
|
||||||
|
except ValueError:
|
||||||
|
upy_float_precision = 0
|
||||||
has_complex = run_feature_check(pyb, args, base_path, "complex.py") == b"complex\n"
|
has_complex = run_feature_check(pyb, args, base_path, "complex.py") == b"complex\n"
|
||||||
has_coverage = run_feature_check(pyb, args, base_path, "coverage.py") == b"coverage\n"
|
has_coverage = run_feature_check(pyb, args, base_path, "coverage.py") == b"coverage\n"
|
||||||
cpy_byteorder = subprocess.check_output(
|
cpy_byteorder = subprocess.check_output(
|
||||||
|
Loading…
Reference in New Issue
Block a user