From 89e570a5b4025976da66123032c58611f0f6cb17 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Fri, 3 Mar 2017 20:14:02 +0300 Subject: [PATCH] tests/run-tests: Check for big int availability and skip related tests. Big aka arbitrary-precision integers (implemented by MPZ module) are used in tests starting with "int_big_" or ending with "_intbig". --- tests/feature_check/int_big.py | 2 ++ tests/feature_check/int_big.py.exp | 0 tests/run-tests | 8 ++++++++ 3 files changed, 10 insertions(+) create mode 100644 tests/feature_check/int_big.py create mode 100644 tests/feature_check/int_big.py.exp diff --git a/tests/feature_check/int_big.py b/tests/feature_check/int_big.py new file mode 100644 index 0000000000..8b82814aee --- /dev/null +++ b/tests/feature_check/int_big.py @@ -0,0 +1,2 @@ +# Check whether arbitrary-precision integers (MPZ) are supported +1000000000000000000000000000000000000000000000 diff --git a/tests/feature_check/int_big.py.exp b/tests/feature_check/int_big.py.exp new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/run-tests b/tests/run-tests index 6cca829b67..d568f23e89 100755 --- a/tests/run-tests +++ b/tests/run-tests @@ -198,6 +198,7 @@ def run_tests(pyb, tests, args): skip_tests = set() skip_native = False + skip_int_big = False skip_set_type = False skip_async = False @@ -206,6 +207,11 @@ def run_tests(pyb, tests, args): if native == b'CRASH': skip_native = True + # Check if arbitrary-precision integers are supported, and skip such tests if it's not + native = run_micropython(pyb, args, 'feature_check/int_big.py') + if native == b'CRASH': + skip_int_big = True + # Check if set type (and set literals) is supported, and skip such tests if it's not native = run_micropython(pyb, args, 'feature_check/set_check.py') if native == b'CRASH': @@ -320,12 +326,14 @@ def run_tests(pyb, tests, args): test_name = os.path.splitext(test_basename)[0] is_native = test_name.startswith("native_") or test_name.startswith("viper_") is_endian = test_name.endswith("_endian") + is_int_big = test_name.startswith("int_big_") or test_name.endswith("_intbig") is_set_type = test_name.startswith("set_") or test_name.startswith("frozenset") is_async = test_name.startswith("async_") skip_it = test_file in skip_tests skip_it |= skip_native and is_native skip_it |= skip_endian and is_endian + skip_it |= skip_int_big and is_int_big skip_it |= skip_set_type and is_set_type skip_it |= skip_async and is_async