circuitpython/tests/feature_check
Damien George 8978102f35 tests/run-tests.py: Change --target/--device options to --test-instance.
Previously to this commit, running the test suite on a bare-metal board
required specifying the target (really platform) and device, eg:

    $ ./run-tests.py --target pyboard --device /dev/ttyACM1

That's quite a lot to type, and you also need to know what the target
platform is, when a lot of the time you either don't care or it doesn't
matter.

This commit makes it easier to run the tests by replacing both of these
options with a single `--test-instance` (`-t` for short) option.  That
option specifies the executable/port/device to test.  Then the target
platform is automatically detected.

The `--test-instance` can be passed:
- "unix" (the default) to use the unix version of MicroPython
- "webassembly" to test the webassembly port
- anything else is considered a port/device to pass to Pyboard

There are also some shortcuts to specify a port/device, following
`mpremote`:
- a<n> is short for /dev/ttyACM<n>
- u<n> is short for /dev/ttyUSB<n>
- c<n> is short for COM<n>

For example:

    $ ./run-tests.py -t a1

Note that the default test instance is "unix" and so this commit does not
change the standard way to run tests on the unix port, by just doing
`./run-tests.py`.

As part of this change, the platform (and it's native architecture if it
supports importing native .mpy files) is show at the start of the test run.

Signed-off-by: Damien George <damien@micropython.org>
2024-11-04 12:47:47 +11: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
float.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
float.py.exp tests: Auto detect floating point capabilites of the target. 2017-06-26 13:47:00 +10: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_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
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
io_module.py tests: Replace umodule with module everywhere. 2023-06-08 17:54:24 +10:00
io_module.py.exp tests: Replace umodule with module everywhere. 2023-06-08 17:54:24 +10: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 tests/run-tests.py: Change --target/--device options to --test-instance. 2024-11-04 12:47:47 +11: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.