summaryrefslogtreecommitdiff
path: root/tests/run-tests.py
diff options
context:
space:
mode:
authorAlessandro Gatti <a.gatti@frob.it>2025-09-24 22:26:39 +0200
committerAlessandro Gatti <a.gatti@frob.it>2025-10-24 19:13:15 +0200
commit430837996b3cbb85849be92cc4d9ce98ce2a0905 (patch)
treec4415e18addffddd03e774cfb914e651b9beb7e1 /tests/run-tests.py
parent3e2b41f8f60d39226320aad93ed3490d5add1799 (diff)
py/modsys: Add architecture flags to MicroPython metadata.
This commit adds the currently supported architecture flags value as the upper part of "sys.implementation._mpy". This had the side effect of perturbing quite a bit of testing infrastructure and invalidating documentation related to MPY files. To make the test suite run successfully and keep the documentation in sync the following changes have been made: * The target info feature check file now isolates eventual architecture flags and adds them as a separate field * The test runner now picks up the new architecture flags field, reports it to STDOUT if needed and stores it for future uses * Relevant test files for MPY files import code had to be updated to mask out the architecture flags bits in order to perform correctly * MPY file format documentation was updated to show how to mask off and properly display the architecture flags information. This works out of the box if the flag bits can fit in a smallint value once merged with the MPY file header value. Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
Diffstat (limited to 'tests/run-tests.py')
-rwxr-xr-xtests/run-tests.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/tests/run-tests.py b/tests/run-tests.py
index b55bd8e49..f184203a8 100755
--- a/tests/run-tests.py
+++ b/tests/run-tests.py
@@ -387,7 +387,9 @@ def detect_test_platform(pyb, args):
output = run_feature_check(pyb, args, "target_info.py")
if output.endswith(b"CRASH"):
raise ValueError("cannot detect platform: {}".format(output))
- platform, arch, build, thread, float_prec, unicode = str(output, "ascii").strip().split()
+ platform, arch, arch_flags, build, thread, float_prec, unicode = (
+ str(output, "ascii").strip().split()
+ )
if arch == "None":
arch = None
inlineasm_arch = detect_inline_asm_arch(pyb, args)
@@ -400,6 +402,7 @@ def detect_test_platform(pyb, args):
args.arch = arch
if arch and not args.mpy_cross_flags:
args.mpy_cross_flags = "-march=" + arch
+ args.arch_flags = arch_flags
args.inlineasm_arch = inlineasm_arch
args.build = build
args.thread = thread
@@ -410,6 +413,7 @@ def detect_test_platform(pyb, args):
print("platform={}".format(platform), end="")
if arch:
print(" arch={}".format(arch), end="")
+ print(" arch_flags={}".format(arch_flags), end="")
if inlineasm_arch:
print(" inlineasm={}".format(inlineasm_arch), end="")
if thread: