summaryrefslogtreecommitdiff
path: root/tests/run-tests.py
diff options
context:
space:
mode:
authorYoctopuce dev <dev@yoctopuce.com>2025-02-15 15:24:50 +0100
committerDamien George <damien@micropython.org>2025-05-07 14:56:47 +1000
commitbdb7e036d2400c25beeb2b4252ff51c5255c4020 (patch)
treebc09484a6bf1cdff6efccea1999b68ef6706c068 /tests/run-tests.py
parent79abdad9e97f18f45650e1abce64ee51c3372953 (diff)
extmod/asyncio: Fix early exit of asyncio scheduler.
This commit fixes three open issues related to the asyncio scheduler exiting prematurely when the main task queue is empty, in cases where CPython would not exit (for example, because the main task is not done because it's on a different queue). In the first case, the scheduler exits because running a task via `run_until_complete` did not schedule any dependent tasks. In the other two cases, the scheduler exits because the tasks are queued in an event queue. Tests have been added which reproduce the original issues. These test cases document the unauthorized use of `Event.set()` from a soft IRQ, and are skipped in unsupported environments (webassembly and native emitter). Fixes issues #16759, #16569 and #16318. Signed-off-by: Yoctopuce dev <dev@yoctopuce.com>
Diffstat (limited to 'tests/run-tests.py')
-rwxr-xr-xtests/run-tests.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/tests/run-tests.py b/tests/run-tests.py
index 9e7cab468..ac411a0be 100755
--- a/tests/run-tests.py
+++ b/tests/run-tests.py
@@ -162,6 +162,9 @@ platform_tests_to_skip = {
"extmod/asyncio_new_event_loop.py",
"extmod/asyncio_threadsafeflag.py",
"extmod/asyncio_wait_for_fwd.py",
+ "extmod/asyncio_event_queue.py",
+ "extmod/asyncio_iterator_event.py",
+ "extmod/asyncio_wait_for_linked_task.py",
"extmod/binascii_a2b_base64.py",
"extmod/deflate_compress_memory_error.py", # tries to allocate unlimited memory
"extmod/re_stack_overflow.py",
@@ -843,6 +846,8 @@ def run_tests(pyb, tests, args, result_dir, num_threads=1):
) # native doesn't have proper traceback info
skip_tests.add("micropython/schedule.py") # native code doesn't check pending events
skip_tests.add("stress/bytecode_limit.py") # bytecode specific test
+ skip_tests.add("extmod/asyncio_event_queue.py") # native can't run schedule
+ skip_tests.add("extmod/asyncio_iterator_event.py") # native can't run schedule
def run_one_test(test_file):
test_file = test_file.replace("\\", "/")