micropython/tests/feature_check
Alessandro Gatti 430837996b 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>
2025-10-24 19:13:15 +02:00
..
async_check.py tests/feature_check: Check for lack of pass result rather than failure. 2021-04-15 00:52:56 +10:00
async_check.py.exp tests/run-tests: Allow to skip tests using async/await keywords. 2017-02-14 22:03:25 +03:00
bytearray.py tests: Add feature check for bytearray and skip corresponding tests. 2019-10-29 22:22:37 +11:00
bytearray.py.exp tests: Add feature check for bytearray and skip corresponding tests. 2019-10-29 22:22:37 +11:00
byteorder.py tests: Replace umodule with module everywhere. 2023-06-08 17:54:24 +10:00
byteorder.py.exp tests: Consolidate all feature check snippets under feature_check/. 2015-08-30 11:36:42 +03:00
complex.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
complex.py.exp tests: Actuall add feature check for complex type being available. 2015-12-06 15:13:26 +02:00
const.py tests/feature_check: Check for lack of pass result rather than failure. 2021-04-15 00:52:56 +10:00
const.py.exp run-tests: Add feature check for "const" keyword and skip related tests. 2017-04-02 22:52:18 +03:00
coverage.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
coverage.py.exp tests: Add a coverage test for printing the parse-tree. 2016-12-22 11:26:06 +11:00
fstring.py py: Implement partial PEP-498 (f-string) support. 2021-08-14 16:58:40 +10:00
fstring.py.exp py: Implement partial PEP-498 (f-string) support. 2021-08-14 16:58:40 +10:00
inlineasm_rv32_zba.py py/emitinlinerv32: Add Zba opcodes to the inline assembler. 2025-09-19 15:52:20 +02:00
inlineasm_rv32_zba.py.exp py/emitinlinerv32: Add Zba opcodes to the inline assembler. 2025-09-19 15:52:20 +02:00
inlineasm_rv32.py tests/run-tests.py: Detect inlineasm support and add tests if needed. 2025-01-02 11:52:28 +11:00
inlineasm_rv32.py.exp tests/run-tests.py: Detect inlineasm support and add tests if needed. 2025-01-02 11:52:28 +11:00
inlineasm_thumb2.py tests/run-tests.py: Skip Thumb2 tests if target doesn't support them. 2023-12-06 16:05:37 +11:00
inlineasm_thumb2.py.exp tests/run-tests.py: Skip Thumb2 tests if target doesn't support them. 2023-12-06 16:05:37 +11:00
inlineasm_thumb.py tests/run-tests.py: Detect inlineasm support and add tests if needed. 2025-01-02 11:52:28 +11:00
inlineasm_thumb.py.exp tests/run-tests.py: Detect inlineasm support and add tests if needed. 2025-01-02 11:52:28 +11:00
inlineasm_xtensa.py tests/run-tests.py: Detect inlineasm support and add tests if needed. 2025-01-02 11:52:28 +11:00
inlineasm_xtensa.py.exp tests/run-tests.py: Detect inlineasm support and add tests if needed. 2025-01-02 11:52:28 +11:00
int_64.py tests: Add specific tests for "long long" 64-bit bigints. 2025-07-18 00:10:44 +10:00
int_64.py.exp tests: Add specific tests for "long long" 64-bit bigints. 2025-07-18 00:10:44 +10:00
int_big.py tests/feature_check/int_big: Rework "big int" detection. 2017-03-10 02:11:43 +01:00
int_big.py.exp tests/feature_check/int_big: Rework "big int" detection. 2017-03-10 02:11:43 +01:00
native_check.py tests/feature_check: Check for lack of pass result rather than failure. 2021-04-15 00:52:56 +10:00
native_check.py.exp tests: Consolidate all feature check snippets under feature_check/. 2015-08-30 11:36:42 +03:00
README all: Fix spelling mistakes based on codespell check. 2023-04-27 18:03:06 +10:00
repl_emacs_check.py tests: Consolidate all feature check snippets under feature_check/. 2015-08-30 11:36:42 +03:00
repl_emacs_check.py.exp unix: Add exit and paste-mode hints to shell startup banner. 2015-10-12 00:19:00 +01:00
repl_words_move_check.py lib/mp-readline: Add word-based move/delete EMACS key sequences. 2020-01-12 13:09:27 +11:00
repl_words_move_check.py.exp lib/mp-readline: Add word-based move/delete EMACS key sequences. 2020-01-12 13:09:27 +11:00
reverse_ops.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
reverse_ops.py.exp tests/class_reverse_op: Test for reverse arith ops special methods. 2017-09-10 17:05:57 +03:00
set_check.py tests/feature_check: Check for lack of pass result rather than failure. 2021-04-15 00:52:56 +10:00
set_check.py.exp tests/run-tests: Allow to skip set tests. 2017-01-05 00:16:29 +03:00
slice.py tests: Add feature check for slice and skip corresponding tests. 2019-10-29 22:22:37 +11:00
slice.py.exp tests: Add feature check for slice and skip corresponding tests. 2019-10-29 22:22:37 +11:00
target_info.py py/modsys: Add architecture flags to MicroPython metadata. 2025-10-24 19:13:15 +02:00
target_info.py.exp tests/run-tests.py: Automatically detect native arch and mpy-cross flag. 2024-09-04 16:34:01 +10:00

This directory doesn't contain real tests, but code snippets to detect
various interpreter features, which can't be/inconvenient to detect by
other means. Scripts here are executed by run-tests.py at the beginning of
testsuite to decide what other test groups to run/exclude.