When detecting the target platform, also check if it has threading and whether the GIL is enabled or not (using the new attribute `sys.implementation._thread`). If threading is available, add the thread tests to the set of tests to run (unless the set of tests is explicitly given). With this change, the unix port no longer needs to explicitly run the set of thread tests, so that line has been removed from the Makefile. This change will make sure thread tests are run with other testing combinations. In particular, thread tests are now run: - on the unix port with the native emitter - on macOS builds - on unix qemu, the architectures MIPS, ARM and RISCV-64 Signed-off-by: Damien George <damien@micropython.org>
25 lines
569 B
Python
25 lines
569 B
Python
# Retrieve the native architecture of the target.
|
|
# See https://docs.micropython.org/en/latest/reference/mpyfiles.html#versioning-and-compatibility-of-mpy-files
|
|
# for more details.
|
|
|
|
import sys
|
|
|
|
platform = getattr(sys, "platform", "minimal")
|
|
sys_mpy = getattr(sys.implementation, "_mpy", 0)
|
|
arch = [
|
|
None,
|
|
"x86",
|
|
"x64",
|
|
"armv6",
|
|
"armv6m",
|
|
"armv7m",
|
|
"armv7em",
|
|
"armv7emsp",
|
|
"armv7emdp",
|
|
"xtensa",
|
|
"xtensawin",
|
|
"rv32imc",
|
|
][sys_mpy >> 10]
|
|
thread = getattr(sys.implementation, "_thread", None)
|
|
|
|
print(platform, arch, thread)
|