diff options
author | Dino Viehland <dinoviehland@meta.com> | 2024-05-06 23:45:04 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-06 23:45:04 (GMT) |
commit | e272195b3eff3a78e334a601a637d198b8de2319 (patch) | |
tree | 7f8d0179b0b196e3bd515b00428b1a4df50f737f /Lib/test | |
parent | 636b8d94c91324c7e49a7cfe914f162690adf488 (diff) | |
download | cpython-e272195b3eff3a78e334a601a637d198b8de2319.zip cpython-e272195b3eff3a78e334a601a637d198b8de2319.tar.gz cpython-e272195b3eff3a78e334a601a637d198b8de2319.tar.bz2 |
gh-118362: Skip tests when threading isn't available (#118666)
* Skip tests when threads aren't available
* Use ThreadPoolExecutor
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_free_threading/test_list.py | 4 | ||||
-rw-r--r-- | Lib/test/test_free_threading/test_monitoring.py | 12 | ||||
-rw-r--r-- | Lib/test/test_free_threading/test_type.py | 16 |
3 files changed, 16 insertions, 16 deletions
diff --git a/Lib/test/test_free_threading/test_list.py b/Lib/test/test_free_threading/test_list.py index 79cb0a9..6ad806d 100644 --- a/Lib/test/test_free_threading/test_list.py +++ b/Lib/test/test_free_threading/test_list.py @@ -3,7 +3,7 @@ import unittest from threading import Thread from unittest import TestCase -from test.support import is_wasi +from test.support import threading_helper class C: @@ -11,7 +11,7 @@ class C: self.v = v -@unittest.skipIf(is_wasi, "WASI has no threads.") +@threading_helper.requires_working_threading() class TestList(TestCase): def test_racing_iter_append(self): diff --git a/Lib/test/test_free_threading/test_monitoring.py b/Lib/test/test_free_threading/test_monitoring.py index fa58804..3a3f1ba 100644 --- a/Lib/test/test_free_threading/test_monitoring.py +++ b/Lib/test/test_free_threading/test_monitoring.py @@ -7,7 +7,7 @@ import unittest import weakref from sys import monitoring -from test.support import is_wasi +from test.support import threading_helper from threading import Thread, _PyRLock from unittest import TestCase @@ -87,7 +87,7 @@ class MonitoringTestMixin: monitoring.free_tool_id(self.tool_id) -@unittest.skipIf(is_wasi, "WASI has no threads.") +@threading_helper.requires_working_threading() class SetPreTraceMultiThreaded(InstrumentationMultiThreadedMixin, TestCase): """Sets tracing one time after the threads have started""" @@ -106,7 +106,7 @@ class SetPreTraceMultiThreaded(InstrumentationMultiThreadedMixin, TestCase): sys.settrace(self.trace_func) -@unittest.skipIf(is_wasi, "WASI has no threads.") +@threading_helper.requires_working_threading() class MonitoringMultiThreaded( MonitoringTestMixin, InstrumentationMultiThreadedMixin, TestCase ): @@ -140,7 +140,7 @@ class MonitoringMultiThreaded( self.set = not self.set -@unittest.skipIf(is_wasi, "WASI has no threads.") +@threading_helper.requires_working_threading() class SetTraceMultiThreaded(InstrumentationMultiThreadedMixin, TestCase): """Uses sys.settrace and repeatedly toggles instrumentation on and off""" @@ -166,7 +166,7 @@ class SetTraceMultiThreaded(InstrumentationMultiThreadedMixin, TestCase): self.set = not self.set -@unittest.skipIf(is_wasi, "WASI has no threads.") +@threading_helper.requires_working_threading() class SetProfileMultiThreaded(InstrumentationMultiThreadedMixin, TestCase): """Uses sys.setprofile and repeatedly toggles instrumentation on and off""" @@ -192,7 +192,7 @@ class SetProfileMultiThreaded(InstrumentationMultiThreadedMixin, TestCase): self.set = not self.set -@unittest.skipIf(is_wasi, "WASI has no threads.") +@threading_helper.requires_working_threading() class MonitoringMisc(MonitoringTestMixin, TestCase): def register_callback(self): def callback(*args): diff --git a/Lib/test/test_free_threading/test_type.py b/Lib/test/test_free_threading/test_type.py index 76208c4..6eead19 100644 --- a/Lib/test/test_free_threading/test_type.py +++ b/Lib/test/test_free_threading/test_type.py @@ -1,10 +1,11 @@ import unittest +from concurrent.futures import ThreadPoolExecutor from threading import Thread -from multiprocessing.dummy import Pool from unittest import TestCase -from test.support import is_wasi +from test.support import threading_helper, import_helper + NTHREADS = 6 @@ -15,7 +16,7 @@ ITERS = 100 class A: attr = 1 -@unittest.skipIf(is_wasi, "WASI has no threads.") +@threading_helper.requires_working_threading() class TestType(TestCase): def test_attr_cache(self): def read(id0): @@ -34,11 +35,10 @@ class TestType(TestCase): A.attr = x - with Pool(NTHREADS) as pool: - pool.apply_async(read, (1,)) - pool.apply_async(write, (1,)) - pool.close() - pool.join() + with ThreadPoolExecutor(NTHREADS) as pool: + pool.submit(read, (1,)) + pool.submit(write, (1,)) + pool.shutdown(wait=True) def test_attr_cache_consistency(self): class C: |