summaryrefslogtreecommitdiff
path: root/tests/run-tests.py
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2024-01-05 09:53:05 +1100
committerDamien George <damien@micropython.org>2024-01-05 10:02:27 +1100
commit2265d70add3ecfaf2ffbfb8393ab29a887d8d7fd (patch)
treea46fb5b32c4b6c1d3742a8636c97c4125d18c395 /tests/run-tests.py
parent231fc20ce0cf776d64d2a0f1ad0ada99cc178552 (diff)
tests/thread: Adjust thread tests so most are able to run on rp2 port.
The aim of this commit is to make it so that the existing thread tests can be used to test the _thread module on the rp2 port. The rp2 port only allows up to one thread to be created at a time, and does not have the GIL enabled. The following changes have been made: - run-tests.py skips mutation tests on rp2, because there's no GIL. - run-tests.py skips other tests on rp2 that require more than one thread. - The tests stop trying to start a new thread after there is an OSError, which indicates that the system cannot create more threads. - Some of these tests also now run the test function on the main thread, not just the spawned threads. - In some tests the output printing is adjusted so it's the same regardless of how many threads were spawned. - Some time.sleep(1) are replaced with time.sleep(0) to make the tests run a little faster (finish sooner when the work is done). For the most part the tests are unchanged for existing platforms like esp32 and unix. Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'tests/run-tests.py')
-rwxr-xr-xtests/run-tests.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/tests/run-tests.py b/tests/run-tests.py
index e5d712303..bbc98cad9 100755
--- a/tests/run-tests.py
+++ b/tests/run-tests.py
@@ -562,13 +562,19 @@ def run_tests(pyb, tests, args, result_dir, num_threads=1):
skip_tests.add("cmdline/repl_sys_ps1_ps2.py")
skip_tests.add("extmod/ssl_poll.py")
- # Some tests shouldn't be run on a PC
- if args.target == "unix":
- # unix build does not have the GIL so can't run thread mutation tests
+ # Skip thread mutation tests on targets that don't have the GIL.
+ if args.target in ("rp2", "unix"):
for t in tests:
if t.startswith("thread/mutate_"):
skip_tests.add(t)
+ # Skip thread tests that require many threads on targets that don't support multiple threads.
+ if args.target == "rp2":
+ skip_tests.add("thread/stress_heap.py")
+ skip_tests.add("thread/thread_lock2.py")
+ skip_tests.add("thread/thread_lock3.py")
+ skip_tests.add("thread/thread_shared2.py")
+
# Some tests shouldn't be run on pyboard
if args.target != "unix":
skip_tests.add("basics/exception_chain.py") # warning is not printed
@@ -987,7 +993,7 @@ the last matching regex is used:
elif args.target in ("renesas-ra"):
test_dirs += ("float", "inlineasm", "renesas-ra")
elif args.target == "rp2":
- test_dirs += ("float", "stress", "inlineasm")
+ test_dirs += ("float", "stress", "inlineasm", "thread")
elif args.target in ("esp8266", "esp32", "minimal", "nrf"):
test_dirs += ("float",)
elif args.target == "wipy":