micropython/tests/thread
Damien George 2265d70add 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>
2024-01-05 10:02:27 +11:00
..
mutate_bytearray.py top: Update Python formatting to black "2023 stable style". 2023-02-02 12:51:03 +11:00
mutate_dict.py top: Update Python formatting to black "2023 stable style". 2023-02-02 12:51:03 +11:00
mutate_instance.py top: Update Python formatting to black "2023 stable style". 2023-02-02 12:51:03 +11:00
mutate_list.py top: Update Python formatting to black "2023 stable style". 2023-02-02 12:51:03 +11:00
mutate_set.py top: Update Python formatting to black "2023 stable style". 2023-02-02 12:51:03 +11:00
stress_aes.py tests: Replace umodule with module everywhere. 2023-06-08 17:54:24 +10:00
stress_create.py tests: Replace umodule with module everywhere. 2023-06-08 17:54:24 +10:00
stress_heap.py tests: Replace umodule with module everywhere. 2023-06-08 17:54:24 +10:00
stress_recurse.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
stress_schedule.py tests/thread: Adjust thread tests so most are able to run on rp2 port. 2024-01-05 10:02:27 +11:00
stress_schedule.py.exp py/scheduler: Add assert that scheduler is locked when unlocking. 2020-04-13 21:55:47 +10:00
thread_exc1.py tests/thread: Make exc1,exit1,exit2,stacksize1,start1 tests run on rp2. 2021-05-10 13:07:16 +10:00
thread_exc2.py tests: Replace umodule with module everywhere. 2023-06-08 17:54:24 +10:00
thread_exc2.py.exp tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
thread_exit1.py tests: Replace umodule with module everywhere. 2023-06-08 17:54:24 +10:00
thread_exit2.py tests: Replace umodule with module everywhere. 2023-06-08 17:54:24 +10:00
thread_gc1.py tests/thread: Adjust thread tests so most are able to run on rp2 port. 2024-01-05 10:02:27 +11:00
thread_heap_lock.py py/gc: Make gc_lock_depth have a count per thread. 2021-05-10 13:07:16 +10:00
thread_heap_lock.py.exp py/gc: Make gc_lock_depth have a count per thread. 2021-05-10 13:07:16 +10:00
thread_ident1.py tests/thread: Adjust thread tests so most are able to run on rp2 port. 2024-01-05 10:02:27 +11:00
thread_lock1.py all: Fix spelling mistakes based on codespell check. 2023-04-27 18:03:06 +10:00
thread_lock2.py tests: Replace umodule with module everywhere. 2023-06-08 17:54:24 +10:00
thread_lock3.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
thread_lock4.py tests/thread: Adjust thread tests so most are able to run on rp2 port. 2024-01-05 10:02:27 +11:00
thread_lock5.py esp32/mpthreadport: Use binary semaphore instead of mutex. 2021-05-08 22:47:03 +10:00
thread_qstr1.py tests/thread: Adjust thread tests so most are able to run on rp2 port. 2024-01-05 10:02:27 +11:00
thread_shared1.py tests/thread: Adjust thread tests so most are able to run on rp2 port. 2024-01-05 10:02:27 +11:00
thread_shared2.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
thread_sleep1.py tests/thread: Adjust thread tests so most are able to run on rp2 port. 2024-01-05 10:02:27 +11:00
thread_stacksize1.py tests: Replace umodule with module everywhere. 2023-06-08 17:54:24 +10:00
thread_start1.py tests: Replace umodule with module everywhere. 2023-06-08 17:54:24 +10:00
thread_start2.py tests: Replace umodule with module everywhere. 2023-06-08 17:54:24 +10:00