https://github.com/charles-zablit created 
https://github.com/llvm/llvm-project/pull/215614

Convert `skipIfTargetDoesNotSupportThreads` to `requireThreadSupport` to 
clearly mark wasi targets as unsupported for tests which use threads.

>From 114571f5426f03d928ca97446a55759c5f27cb2a Mon Sep 17 00:00:00 2001
From: Charles Zablit <[email protected]>
Date: Tue, 11 Aug 2026 17:56:21 +0100
Subject: [PATCH] [NFC][lldb] Make skipIfTargetDoesNotSupportThreads a require
 decorator

---
 lldb/packages/Python/lldbsuite/test/decorators.py     | 11 +++++------
 .../api/multiple-debuggers/TestMultipleDebuggers.py   |  2 +-
 .../API/api/multiple-targets/TestMultipleTargets.py   |  2 +-
 lldb/test/API/api/multithreaded/TestMultithreaded.py  |  2 +-
 .../expression/no-deadlock/TestExprDoesntBlock.py     |  2 +-
 .../expand-threads-tree/TestGuiExpandThreadsTree.py   |  2 +-
 .../commands/gui/spawn-threads/TestGuiSpawnThreads.py |  2 +-
 .../process/attach-resume/TestAttachResume.py         |  2 +-
 .../process/detach-resumes/TestDetachResumes.py       |  2 +-
 .../za_dynamic_resize/TestZAThreadedDynamic.py        |  2 +-
 .../TestSVEThreadedDynamic.py                         |  2 +-
 .../thread/backtrace/TestThreadBacktraceRepeat.py     |  2 +-
 .../TestTraceStartStopMultipleThreads.py              |  2 +-
 .../hello_watchlocation/TestWatchLocation.py          |  2 +-
 .../multiple_threads/TestWatchpointMultipleThreads.py |  2 +-
 .../TestWatchLocationWithWatchSet.py                  |  2 +-
 .../always-run-threads/TestAlwaysRunThreadNames.py    |  2 +-
 .../TestBreakpointCommandAutoContinue.py              |  2 +-
 .../TestBreakOnLambdaCapture.py                       |  2 +-
 .../TestHWBreakMultiThread.py                         |  2 +-
 .../two_hits_one_actual/TestTwoHitsOneActual.py       |  2 +-
 .../fork/concurrent_vfork/TestConcurrentVFork.py      |  2 +-
 .../stepping_plugin_threads/TestOSPluginStepping.py   |  2 +-
 .../TestProcessSaveCoreMinidump.py                    |  2 +-
 .../TestProcessSaveCoreMinidump64b.py                 |  2 +-
 .../scripted_process/TestScriptedProcess.py           |  2 +-
 .../single-thread-step/TestSingleThreadStepTimeout.py |  2 +-
 .../thread/break_after_join/TestBreakAfterJoin.py     |  2 +-
 .../TestConcurrentBatchedBreakpointStepOver.py        |  2 +-
 ...estConcurrentBreakpointDelayBreakpointOneSignal.py |  2 +-
 ...stConcurrentBreakpointOneDelayBreakpointThreads.py |  2 +-
 ...urrentBreakpointsDelayedBreakpointOneWatchpoint.py |  2 +-
 .../concurrent_events/TestConcurrentCrashWithBreak.py |  2 +-
 .../TestConcurrentCrashWithSignal.py                  |  2 +-
 .../TestConcurrentCrashWithWatchpoint.py              |  2 +-
 ...stConcurrentCrashWithWatchpointBreakpointSignal.py |  2 +-
 .../TestConcurrentDelaySignalBreak.py                 |  2 +-
 .../TestConcurrentDelaySignalWatch.py                 |  2 +-
 .../TestConcurrentDelayWatchBreak.py                  |  2 +-
 .../TestConcurrentDelayedCrashWithBreakpointSignal.py |  2 +-
 ...tConcurrentDelayedCrashWithBreakpointWatchpoint.py |  2 +-
 .../TestConcurrentManyBreakpoints.py                  |  2 +-
 .../concurrent_events/TestConcurrentManyCrash.py      |  2 +-
 .../concurrent_events/TestConcurrentManySignals.py    |  2 +-
 .../TestConcurrentManyWatchpoints.py                  |  2 +-
 .../concurrent_events/TestConcurrentNWatchNBreak.py   |  2 +-
 .../concurrent_events/TestConcurrentSignalBreak.py    |  2 +-
 .../TestConcurrentSignalDelayBreak.py                 |  2 +-
 .../TestConcurrentSignalDelayWatch.py                 |  2 +-
 .../TestConcurrentSignalNWatchNBreak.py               |  2 +-
 .../concurrent_events/TestConcurrentSignalWatch.py    |  2 +-
 .../TestConcurrentSignalWatchBreak.py                 |  2 +-
 .../TestConcurrentTwoBreakpointThreads.py             |  2 +-
 .../TestConcurrentTwoBreakpointsOneDelaySignal.py     |  2 +-
 .../TestConcurrentTwoBreakpointsOneSignal.py          |  2 +-
 .../TestConcurrentTwoBreakpointsOneWatchpoint.py      |  2 +-
 .../TestConcurrentTwoWatchpointThreads.py             |  2 +-
 .../TestConcurrentTwoWatchpointsOneBreakpoint.py      |  2 +-
 .../TestConcurrentTwoWatchpointsOneDelayBreakpoint.py |  2 +-
 .../TestConcurrentTwoWatchpointsOneSignal.py          |  2 +-
 .../concurrent_events/TestConcurrentWatchBreak.py     |  2 +-
 .../TestConcurrentWatchBreakDelay.py                  |  2 +-
 ...oncurrentWatchpointDelayWatchpointOneBreakpoint.py |  2 +-
 ...tConcurrentWatchpointWithDelayWatchpointThreads.py |  2 +-
 .../exit/TestConcurrentThreadExit.py                  |  2 +-
 .../create_after_attach/TestCreateAfterAttach.py      |  2 +-
 .../thread/create_during_step/TestCreateDuringStep.py |  2 +-
 .../thread/exit_during_break/TestExitDuringBreak.py   |  2 +-
 .../TestExitDuringExpression.py                       |  2 +-
 .../thread/exit_during_step/TestExitDuringStep.py     |  2 +-
 .../ignore_suspended/TestIgnoreSuspendedThread.py     |  2 +-
 .../thread/main_thread_exit/TestMainThreadExit.py     |  2 +-
 .../thread/multi_break/TestMultipleBreakpoints.py     |  2 +-
 .../thread/num_threads/TestNumThreads.py              |  2 +-
 .../TestStateAfterExpression.py                       |  2 +-
 .../thread/step_out/TestThreadStepOut.py              |  2 +-
 .../thread/thread_exit/TestThreadExit.py              |  2 +-
 .../TestThreadSpecificBreakpoint.py                   |  2 +-
 .../TestThreadSpecificBpPlusCondition.py              |  2 +-
 .../step_over_no_deadlock/TestStepOverDoesntBlock.py  |  2 +-
 lldb/test/API/lang/c/tls_globals/TestTlsGlobals.py    |  2 +-
 .../TestCreateDuringInstructionStep.py                |  2 +-
 .../API/python_api/lldbutil/iter/TestLLDBIterator.py  |  2 +-
 .../python_api/lldbutil/iter/TestRegistersIterator.py |  2 +-
 .../watchpoint/watchlocation/TestSetWatchlocation.py  |  2 +-
 .../watchlocation/TestTargetWatchAddress.py           |  2 +-
 .../lldb-dap/stopped-events/TestDAP_stopped_events.py |  4 ++--
 .../API/tools/lldb-dap/threads/TestDAP_threads.py     |  4 ++--
 .../lldb-server/TestGdbRemoteThreadsInStopReply.py    |  2 +-
 .../TestCachedMemoryRegionInfo.py                     |  2 +-
 .../lldb-server/vCont-threads/TestPartialResume.py    |  2 +-
 .../API/tools/lldb-server/vCont-threads/TestSignal.py |  2 +-
 92 files changed, 98 insertions(+), 99 deletions(-)

diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py 
b/lldb/packages/Python/lldbsuite/test/decorators.py
index 59594b689c65d..399c253655451 100644
--- a/lldb/packages/Python/lldbsuite/test/decorators.py
+++ b/lldb/packages/Python/lldbsuite/test/decorators.py
@@ -1247,15 +1247,14 @@ def requireDarwinHost(func):
     return 
requireHostPlatform(lldbplatform.translate(lldbplatform.darwin_all))(func)
 
 
-def skipIfTargetDoesNotSupportThreads():
+def requireThreadSupport(func):
     """Skip tests that require thread support (e.g. pthreads)."""
     platform = lldbplatformutil.getPlatform()
-    # WASI targets ending in "-threads" (e.g. wasip1-threads) support threads;
-    # other WASI targets (e.g. wasip1, wasip2) do not.
-    no_threads = platform.startswith("wasi") and not 
platform.endswith("threads")
     return unittest.skipIf(
-        no_threads,
-        "threads are not supported on %s" % platform,
+        # WASI targets ending in "-threads" (e.g. wasip1-threads) support 
threads;
+        # other WASI targets (e.g. wasip1, wasip2) do not.
+        platform.startswith("wasi") and not platform.endswith("threads"),
+        UnsupportedReason(f"threads are not supported on {platform}"),
     )
 
 
diff --git a/lldb/test/API/api/multiple-debuggers/TestMultipleDebuggers.py 
b/lldb/test/API/api/multiple-debuggers/TestMultipleDebuggers.py
index 211b86457a635..3239038ab5765 100644
--- a/lldb/test/API/api/multiple-debuggers/TestMultipleDebuggers.py
+++ b/lldb/test/API/api/multiple-debuggers/TestMultipleDebuggers.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class TestMultipleSimultaneousDebuggers(TestBase):
     SHARED_BUILD_TESTCASE = False
     NO_DEBUG_INFO_TESTCASE = True
diff --git a/lldb/test/API/api/multiple-targets/TestMultipleTargets.py 
b/lldb/test/API/api/multiple-targets/TestMultipleTargets.py
index ba2feb0d823ca..0a0bdb6cc4c98 100644
--- a/lldb/test/API/api/multiple-targets/TestMultipleTargets.py
+++ b/lldb/test/API/api/multiple-targets/TestMultipleTargets.py
@@ -8,7 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class TestMultipleTargets(TestBase):
     SHARED_BUILD_TESTCASE = False
     NO_DEBUG_INFO_TESTCASE = True
diff --git a/lldb/test/API/api/multithreaded/TestMultithreaded.py 
b/lldb/test/API/api/multithreaded/TestMultithreaded.py
index ebe80c7de576a..f9da07cfc9f02 100644
--- a/lldb/test/API/api/multithreaded/TestMultithreaded.py
+++ b/lldb/test/API/api/multithreaded/TestMultithreaded.py
@@ -8,7 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfNoSBHeaders
 class SBBreakpointCallbackCase(TestBase):
     SHARED_BUILD_TESTCASE = False
diff --git 
a/lldb/test/API/commands/expression/no-deadlock/TestExprDoesntBlock.py 
b/lldb/test/API/commands/expression/no-deadlock/TestExprDoesntBlock.py
index 134187d21a035..5f162f49e26b7 100644
--- a/lldb/test/API/commands/expression/no-deadlock/TestExprDoesntBlock.py
+++ b/lldb/test/API/commands/expression/no-deadlock/TestExprDoesntBlock.py
@@ -8,7 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class ExprDoesntDeadlockTestCase(TestBase):
     @add_test_categories(["basic_process"])
     def test_with_run_command(self):
diff --git 
a/lldb/test/API/commands/gui/expand-threads-tree/TestGuiExpandThreadsTree.py 
b/lldb/test/API/commands/gui/expand-threads-tree/TestGuiExpandThreadsTree.py
index aeecc790f554f..81837b74eb1ec 100644
--- a/lldb/test/API/commands/gui/expand-threads-tree/TestGuiExpandThreadsTree.py
+++ b/lldb/test/API/commands/gui/expand-threads-tree/TestGuiExpandThreadsTree.py
@@ -10,7 +10,7 @@
 from lldbsuite.test.lldbpexpect import PExpectTest
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class TestGuiExpandThreadsTree(PExpectTest):
     # PExpect uses many timeouts internally and doesn't play well
     # under ASAN on a loaded machine..
diff --git a/lldb/test/API/commands/gui/spawn-threads/TestGuiSpawnThreads.py 
b/lldb/test/API/commands/gui/spawn-threads/TestGuiSpawnThreads.py
index f02b6b0662b09..50f9757ece1a5 100644
--- a/lldb/test/API/commands/gui/spawn-threads/TestGuiSpawnThreads.py
+++ b/lldb/test/API/commands/gui/spawn-threads/TestGuiSpawnThreads.py
@@ -11,7 +11,7 @@
 import sys
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class TestGuiSpawnThreadsTest(PExpectTest):
     # This tests spawns threads, so low resources on the host may
     # lead to the test program being stalled for a long time.
diff --git a/lldb/test/API/commands/process/attach-resume/TestAttachResume.py 
b/lldb/test/API/commands/process/attach-resume/TestAttachResume.py
index c121c2e40beb7..e9d59b23d77aa 100644
--- a/lldb/test/API/commands/process/attach-resume/TestAttachResume.py
+++ b/lldb/test/API/commands/process/attach-resume/TestAttachResume.py
@@ -11,7 +11,7 @@
 exe_name = "AttachResume"  # Must match Makefile
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class AttachResumeTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/commands/process/detach-resumes/TestDetachResumes.py 
b/lldb/test/API/commands/process/detach-resumes/TestDetachResumes.py
index e060aa2db6b34..9a7e235117d75 100644
--- a/lldb/test/API/commands/process/detach-resumes/TestDetachResumes.py
+++ b/lldb/test/API/commands/process/detach-resumes/TestDetachResumes.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class DetachResumesTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/commands/register/aarch64_sme_z_registers/za_dynamic_resize/TestZAThreadedDynamic.py
 
b/lldb/test/API/commands/register/aarch64_sme_z_registers/za_dynamic_resize/TestZAThreadedDynamic.py
index 4f41aa78664a3..215f0d3a44dd7 100644
--- 
a/lldb/test/API/commands/register/aarch64_sme_z_registers/za_dynamic_resize/TestZAThreadedDynamic.py
+++ 
b/lldb/test/API/commands/register/aarch64_sme_z_registers/za_dynamic_resize/TestZAThreadedDynamic.py
@@ -10,7 +10,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class AArch64ZAThreadedTestCase(TestBase):
     def get_supported_vg(self):
         exe = self.getBuildArtifact("a.out")
diff --git 
a/lldb/test/API/commands/register/aarch64_sve_registers/rw_access_dynamic_resize/TestSVEThreadedDynamic.py
 
b/lldb/test/API/commands/register/aarch64_sve_registers/rw_access_dynamic_resize/TestSVEThreadedDynamic.py
index 7458bd20db37c..3b188e662ab46 100644
--- 
a/lldb/test/API/commands/register/aarch64_sve_registers/rw_access_dynamic_resize/TestSVEThreadedDynamic.py
+++ 
b/lldb/test/API/commands/register/aarch64_sve_registers/rw_access_dynamic_resize/TestSVEThreadedDynamic.py
@@ -15,7 +15,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class Mode(Enum):
     SVE = 0
     SSVE = 1
diff --git 
a/lldb/test/API/commands/thread/backtrace/TestThreadBacktraceRepeat.py 
b/lldb/test/API/commands/thread/backtrace/TestThreadBacktraceRepeat.py
index e7c7f984aa4cd..da0aef343d11c 100644
--- a/lldb/test/API/commands/thread/backtrace/TestThreadBacktraceRepeat.py
+++ b/lldb/test/API/commands/thread/backtrace/TestThreadBacktraceRepeat.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class TestThreadBacktracePage(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/commands/trace/multiple-threads/TestTraceStartStopMultipleThreads.py
 
b/lldb/test/API/commands/trace/multiple-threads/TestTraceStartStopMultipleThreads.py
index 5bda951578656..0587f8a9e8a5a 100644
--- 
a/lldb/test/API/commands/trace/multiple-threads/TestTraceStartStopMultipleThreads.py
+++ 
b/lldb/test/API/commands/trace/multiple-threads/TestTraceStartStopMultipleThreads.py
@@ -6,7 +6,7 @@
 from lldbsuite.test.decorators import *
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfNoIntelPT
 class TestTraceStartStopMultipleThreads(TraceIntelPTTestCaseBase):
     @skipIf(oslist=no_match(["linux"]), archs=no_match(["i386", "x86_64"]))
diff --git 
a/lldb/test/API/commands/watchpoints/hello_watchlocation/TestWatchLocation.py 
b/lldb/test/API/commands/watchpoints/hello_watchlocation/TestWatchLocation.py
index df88792ed1d29..9253845901458 100644
--- 
a/lldb/test/API/commands/watchpoints/hello_watchlocation/TestWatchLocation.py
+++ 
b/lldb/test/API/commands/watchpoints/hello_watchlocation/TestWatchLocation.py
@@ -10,7 +10,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class HelloWatchLocationTestCase(TestBase):
     SHARED_BUILD_TESTCASE = False
     NO_DEBUG_INFO_TESTCASE = True
diff --git 
a/lldb/test/API/commands/watchpoints/multiple_threads/TestWatchpointMultipleThreads.py
 
b/lldb/test/API/commands/watchpoints/multiple_threads/TestWatchpointMultipleThreads.py
index 2b03d73b1aa05..87330f6dfcc04 100644
--- 
a/lldb/test/API/commands/watchpoints/multiple_threads/TestWatchpointMultipleThreads.py
+++ 
b/lldb/test/API/commands/watchpoints/multiple_threads/TestWatchpointMultipleThreads.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class WatchpointForMultipleThreadsTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
     main_spec = lldb.SBFileSpec("main.cpp", False)
diff --git 
a/lldb/test/API/commands/watchpoints/watchpoint_set_command/TestWatchLocationWithWatchSet.py
 
b/lldb/test/API/commands/watchpoints/watchpoint_set_command/TestWatchLocationWithWatchSet.py
index e912be09539f9..a1b189b1191df 100644
--- 
a/lldb/test/API/commands/watchpoints/watchpoint_set_command/TestWatchLocationWithWatchSet.py
+++ 
b/lldb/test/API/commands/watchpoints/watchpoint_set_command/TestWatchLocationWithWatchSet.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class WatchLocationUsingWatchpointSetTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/functionalities/always-run-threads/TestAlwaysRunThreadNames.py 
b/lldb/test/API/functionalities/always-run-threads/TestAlwaysRunThreadNames.py
index 278ddfe0d13d7..e924ce17bb8d4 100644
--- 
a/lldb/test/API/functionalities/always-run-threads/TestAlwaysRunThreadNames.py
+++ 
b/lldb/test/API/functionalities/always-run-threads/TestAlwaysRunThreadNames.py
@@ -4,7 +4,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class AlwaysRunThreadNamesTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/functionalities/breakpoint/breakpoint_command_auto_continue/TestBreakpointCommandAutoContinue.py
 
b/lldb/test/API/functionalities/breakpoint/breakpoint_command_auto_continue/TestBreakpointCommandAutoContinue.py
index 03faca4d9211d..47988c31953f2 100644
--- 
a/lldb/test/API/functionalities/breakpoint/breakpoint_command_auto_continue/TestBreakpointCommandAutoContinue.py
+++ 
b/lldb/test/API/functionalities/breakpoint/breakpoint_command_auto_continue/TestBreakpointCommandAutoContinue.py
@@ -11,7 +11,7 @@
 from lldbsuite.test.lldbpexpect import PExpectTest
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfAsan
 @skipIfEditlineSupportMissing
 class BreakpointCommandAutoContinueTestCase(PExpectTest):
diff --git 
a/lldb/test/API/functionalities/breakpoint/breakpoint_on_lambda_capture/TestBreakOnLambdaCapture.py
 
b/lldb/test/API/functionalities/breakpoint/breakpoint_on_lambda_capture/TestBreakOnLambdaCapture.py
index 1efbc9b32ed15..95524b412b602 100644
--- 
a/lldb/test/API/functionalities/breakpoint/breakpoint_on_lambda_capture/TestBreakOnLambdaCapture.py
+++ 
b/lldb/test/API/functionalities/breakpoint/breakpoint_on_lambda_capture/TestBreakOnLambdaCapture.py
@@ -10,7 +10,7 @@
 from lldbsuite.test.lldbtest import *
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class TestBreakOnLambdaCapture(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/TestHWBreakMultiThread.py
 
b/lldb/test/API/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/TestHWBreakMultiThread.py
index fe7e06884413c..af17c52530541 100644
--- 
a/lldb/test/API/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/TestHWBreakMultiThread.py
+++ 
b/lldb/test/API/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/TestHWBreakMultiThread.py
@@ -11,7 +11,7 @@
 from functionalities.breakpoint.hardware_breakpoints.base import *
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class HardwareBreakpointMultiThreadTestCase(HardwareBreakpointTestBase):
     @skipTestIfFn(HardwareBreakpointTestBase.hw_breakpoints_unsupported)
     def test_hw_break_set_delete_multi_thread_macos(self):
diff --git 
a/lldb/test/API/functionalities/breakpoint/two_hits_one_actual/TestTwoHitsOneActual.py
 
b/lldb/test/API/functionalities/breakpoint/two_hits_one_actual/TestTwoHitsOneActual.py
index cc9d047d1cd84..2175392745872 100644
--- 
a/lldb/test/API/functionalities/breakpoint/two_hits_one_actual/TestTwoHitsOneActual.py
+++ 
b/lldb/test/API/functionalities/breakpoint/two_hits_one_actual/TestTwoHitsOneActual.py
@@ -11,7 +11,7 @@
 from lldbsuite.test.lldbtest import *
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class TestTwoHitsOneActual(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/functionalities/fork/concurrent_vfork/TestConcurrentVFork.py 
b/lldb/test/API/functionalities/fork/concurrent_vfork/TestConcurrentVFork.py
index 749d5bcbd2681..913ab42e0aa18 100644
--- a/lldb/test/API/functionalities/fork/concurrent_vfork/TestConcurrentVFork.py
+++ b/lldb/test/API/functionalities/fork/concurrent_vfork/TestConcurrentVFork.py
@@ -8,7 +8,7 @@
 from lldbsuite.test.decorators import *
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class TestConcurrentVFork(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/functionalities/plugins/python_os_plugin/stepping_plugin_threads/TestOSPluginStepping.py
 
b/lldb/test/API/functionalities/plugins/python_os_plugin/stepping_plugin_threads/TestOSPluginStepping.py
index a5bc696e3ef7c..68199ee2fc528 100644
--- 
a/lldb/test/API/functionalities/plugins/python_os_plugin/stepping_plugin_threads/TestOSPluginStepping.py
+++ 
b/lldb/test/API/functionalities/plugins/python_os_plugin/stepping_plugin_threads/TestOSPluginStepping.py
@@ -10,7 +10,7 @@
 import lldbsuite.test.lldbutil as lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class TestOSPluginStepping(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump.py
 
b/lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump.py
index 64f9d00890781..6f219e2fba2f2 100644
--- 
a/lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump.py
+++ 
b/lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class ProcessSaveCoreMinidumpTestCase(TestBase):
     def verify_core_file(
         self,
diff --git 
a/lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump64b.py
 
b/lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump64b.py
index 6807e1fc2117a..0fc4c9eba52fa 100644
--- 
a/lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump64b.py
+++ 
b/lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump64b.py
@@ -10,7 +10,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class ProcessSaveCoreMinidump64bTestCase(TestBase):
     def verify_minidump(
         self,
diff --git 
a/lldb/test/API/functionalities/scripted_process/TestScriptedProcess.py 
b/lldb/test/API/functionalities/scripted_process/TestScriptedProcess.py
index 93a426f397b5b..a877063544143 100644
--- a/lldb/test/API/functionalities/scripted_process/TestScriptedProcess.py
+++ b/lldb/test/API/functionalities/scripted_process/TestScriptedProcess.py
@@ -13,7 +13,7 @@
 import dummy_scripted_process
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class ScriptedProcesTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/functionalities/single-thread-step/TestSingleThreadStepTimeout.py
 
b/lldb/test/API/functionalities/single-thread-step/TestSingleThreadStepTimeout.py
index 3c74208da70cc..5082a18a322ed 100644
--- 
a/lldb/test/API/functionalities/single-thread-step/TestSingleThreadStepTimeout.py
+++ 
b/lldb/test/API/functionalities/single-thread-step/TestSingleThreadStepTimeout.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class SingleThreadStepTimeoutTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/functionalities/thread/break_after_join/TestBreakAfterJoin.py 
b/lldb/test/API/functionalities/thread/break_after_join/TestBreakAfterJoin.py
index c246808f1bb30..79698728b116a 100644
--- 
a/lldb/test/API/functionalities/thread/break_after_join/TestBreakAfterJoin.py
+++ 
b/lldb/test/API/functionalities/thread/break_after_join/TestBreakAfterJoin.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class BreakpointAfterJoinTestCase(TestBase):
     def setUp(self):
         # Call super's setUp().
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBatchedBreakpointStepOver.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBatchedBreakpointStepOver.py
index 922805881c022..d4e2924bee098 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBatchedBreakpointStepOver.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBatchedBreakpointStepOver.py
@@ -12,7 +12,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentBatchedBreakpointStepOver(ConcurrentEventsBase):
     @skipIf(triple="^mips")
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointDelayBreakpointOneSignal.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointDelayBreakpointOneSignal.py
index 607605e7e9cc9..7b2b38f2faacf 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointDelayBreakpointOneSignal.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointDelayBreakpointOneSignal.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentBreakpointDelayBreakpointOneSignal(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointOneDelayBreakpointThreads.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointOneDelayBreakpointThreads.py
index b668303552f0d..7cd45150cc386 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointOneDelayBreakpointThreads.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointOneDelayBreakpointThreads.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentBreakpointOneDelayBreakpointThreads(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointsDelayedBreakpointOneWatchpoint.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointsDelayedBreakpointOneWatchpoint.py
index 559f09aeb34c6..79c919d5c5bb0 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointsDelayedBreakpointOneWatchpoint.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointsDelayedBreakpointOneWatchpoint.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class 
ConcurrentBreakpointsDelayedBreakpointOneWatchpoint(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithBreak.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithBreak.py
index 10b54f6cea578..56e0de1498ea3 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithBreak.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithBreak.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentCrashWithBreak(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithSignal.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithSignal.py
index 26178c5d9c438..777a1b0529768 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithSignal.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithSignal.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentCrashWithSignal(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpoint.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpoint.py
index 1c3b81b303397..20aef12137141 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpoint.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpoint.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentCrashWithWatchpoint(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpointBreakpointSignal.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpointBreakpointSignal.py
index 78b7f1627e717..fcebdfe00d872 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpointBreakpointSignal.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpointBreakpointSignal.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentCrashWithWatchpointBreakpointSignal(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelaySignalBreak.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelaySignalBreak.py
index 5691397b9c7b1..35f5bec12dbf1 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelaySignalBreak.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelaySignalBreak.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentDelaySignalBreak(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelaySignalWatch.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelaySignalWatch.py
index b216a69da646a..0327e7f9d216c 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelaySignalWatch.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelaySignalWatch.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentDelaySignalWatch(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayWatchBreak.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayWatchBreak.py
index 7133ef03c0078..f521d882f208c 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayWatchBreak.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayWatchBreak.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentDelayWatchBreak(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayedCrashWithBreakpointSignal.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayedCrashWithBreakpointSignal.py
index d9a09e2364c09..bcccc53573876 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayedCrashWithBreakpointSignal.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayedCrashWithBreakpointSignal.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentDelayedCrashWithBreakpointSignal(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayedCrashWithBreakpointWatchpoint.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayedCrashWithBreakpointWatchpoint.py
index 40bc3c9a0f9c8..be8bc04a301c1 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayedCrashWithBreakpointWatchpoint.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayedCrashWithBreakpointWatchpoint.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentDelayedCrashWithBreakpointWatchpoint(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyBreakpoints.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyBreakpoints.py
index 4b8900f25a8e8..f7d8e672cfa10 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyBreakpoints.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyBreakpoints.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 @skipIf  # See llvm/llvm-project/#205297
 class ConcurrentManyBreakpoints(ConcurrentEventsBase):
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyCrash.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyCrash.py
index 1527de2e4eb0b..4f3a8d0e12749 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyCrash.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyCrash.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentManyCrash(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManySignals.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManySignals.py
index 3816ffaf69fd0..4a185a80d339d 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManySignals.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManySignals.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentManySignals(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyWatchpoints.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyWatchpoints.py
index f57669d132d8b..64329c8e34259 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyWatchpoints.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyWatchpoints.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentManyWatchpoints(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentNWatchNBreak.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentNWatchNBreak.py
index 19ab6e79c0f03..74fc7df553887 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentNWatchNBreak.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentNWatchNBreak.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentNWatchNBreak(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalBreak.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalBreak.py
index 62bb2f2985c8c..517172bbf2166 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalBreak.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalBreak.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentSignalBreak(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalDelayBreak.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalDelayBreak.py
index 401bdb61d5994..d31174d690144 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalDelayBreak.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalDelayBreak.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentSignalDelayBreak(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalDelayWatch.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalDelayWatch.py
index 8e54e7c82b6c5..44ca319b46d79 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalDelayWatch.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalDelayWatch.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentSignalDelayWatch(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalNWatchNBreak.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalNWatchNBreak.py
index 2a2dc6c9aae4c..5e22a90ea4446 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalNWatchNBreak.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalNWatchNBreak.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentSignalNWatchNBreak(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalWatch.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalWatch.py
index a1802d32f07c0..1e6e3e341b09a 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalWatch.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalWatch.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentSignalWatch(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalWatchBreak.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalWatchBreak.py
index 5cd64aac67f21..1df6c97b02b58 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalWatchBreak.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalWatchBreak.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentSignalWatchBreak(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointThreads.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointThreads.py
index b266855d1da17..a5838d29cfccd 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointThreads.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointThreads.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentTwoBreakpointThreads(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneDelaySignal.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneDelaySignal.py
index 7f9fc4bf18853..3967f616d7d3c 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneDelaySignal.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneDelaySignal.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentTwoBreakpointsOneDelaySignal(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneSignal.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneSignal.py
index 5cdc87bc64f25..fda5fceab17fa 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneSignal.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneSignal.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentTwoBreakpointsOneSignal(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneWatchpoint.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneWatchpoint.py
index 5f676e51b4172..01ad52bcc89e5 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneWatchpoint.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneWatchpoint.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentTwoBreakpointsOneWatchpoint(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointThreads.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointThreads.py
index 7c98781ffaff1..de0020a706e45 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointThreads.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointThreads.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentTwoWatchpointThreads(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneBreakpoint.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneBreakpoint.py
index 59864ecc95159..fb7a6898aa966 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneBreakpoint.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneBreakpoint.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentTwoWatchpointsOneBreakpoint(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneDelayBreakpoint.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneDelayBreakpoint.py
index ba225b609c866..b1b3808cdc7c6 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneDelayBreakpoint.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneDelayBreakpoint.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentTwoWatchpointsOneDelayBreakpoint(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneSignal.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneSignal.py
index e66e47d34a546..05250be5725f1 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneSignal.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneSignal.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentTwoWatchpointsOneSignal(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchBreak.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchBreak.py
index ab72472206973..19a9561c73432 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchBreak.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchBreak.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentWatchBreak(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchBreakDelay.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchBreakDelay.py
index 98f053dfe1bc4..695ac3b158196 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchBreakDelay.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchBreakDelay.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentWatchBreakDelay(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchpointDelayWatchpointOneBreakpoint.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchpointDelayWatchpointOneBreakpoint.py
index b47be4337f9f9..9182f3eb3bfc0 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchpointDelayWatchpointOneBreakpoint.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchpointDelayWatchpointOneBreakpoint.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentWatchpointDelayWatchpointOneBreakpoint(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchpointWithDelayWatchpointThreads.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchpointWithDelayWatchpointThreads.py
index 0d315ac2e3b9e..a0216e26923d4 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchpointWithDelayWatchpointThreads.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchpointWithDelayWatchpointThreads.py
@@ -3,7 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfWindows
 class ConcurrentWatchpointWithDelayWatchpointThreads(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git 
a/lldb/test/API/functionalities/thread/concurrent_events/exit/TestConcurrentThreadExit.py
 
b/lldb/test/API/functionalities/thread/concurrent_events/exit/TestConcurrentThreadExit.py
index 52656387b2031..c665e40cf8b62 100644
--- 
a/lldb/test/API/functionalities/thread/concurrent_events/exit/TestConcurrentThreadExit.py
+++ 
b/lldb/test/API/functionalities/thread/concurrent_events/exit/TestConcurrentThreadExit.py
@@ -9,7 +9,7 @@
 import lldbsuite.test.lldbutil as lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class ConcurrentThreadExitTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/functionalities/thread/create_after_attach/TestCreateAfterAttach.py
 
b/lldb/test/API/functionalities/thread/create_after_attach/TestCreateAfterAttach.py
index 2495ad59514ec..d2fd9b03c3ceb 100644
--- 
a/lldb/test/API/functionalities/thread/create_after_attach/TestCreateAfterAttach.py
+++ 
b/lldb/test/API/functionalities/thread/create_after_attach/TestCreateAfterAttach.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class CreateAfterAttachTestCase(TestBase):
     def setUp(self):
         # Call super's setUp().
diff --git 
a/lldb/test/API/functionalities/thread/create_during_step/TestCreateDuringStep.py
 
b/lldb/test/API/functionalities/thread/create_during_step/TestCreateDuringStep.py
index 6bb155bc2e3d5..1c69bf2ca4632 100644
--- 
a/lldb/test/API/functionalities/thread/create_during_step/TestCreateDuringStep.py
+++ 
b/lldb/test/API/functionalities/thread/create_during_step/TestCreateDuringStep.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class CreateDuringStepTestCase(TestBase):
     @expectedFailureAll(
         oslist=["linux"],
diff --git 
a/lldb/test/API/functionalities/thread/exit_during_break/TestExitDuringBreak.py 
b/lldb/test/API/functionalities/thread/exit_during_break/TestExitDuringBreak.py
index 6241df148477e..08078f71b7b2c 100644
--- 
a/lldb/test/API/functionalities/thread/exit_during_break/TestExitDuringBreak.py
+++ 
b/lldb/test/API/functionalities/thread/exit_during_break/TestExitDuringBreak.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class ExitDuringBreakpointTestCase(TestBase):
     def setUp(self):
         # Call super's setUp().
diff --git 
a/lldb/test/API/functionalities/thread/exit_during_expression/TestExitDuringExpression.py
 
b/lldb/test/API/functionalities/thread/exit_during_expression/TestExitDuringExpression.py
index 7613f9d6e437c..fae9d38d6aed3 100644
--- 
a/lldb/test/API/functionalities/thread/exit_during_expression/TestExitDuringExpression.py
+++ 
b/lldb/test/API/functionalities/thread/exit_during_expression/TestExitDuringExpression.py
@@ -9,7 +9,7 @@
 from lldbsuite.test.lldbtest import *
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfAsan
 class TestExitDuringExpression(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
diff --git 
a/lldb/test/API/functionalities/thread/exit_during_step/TestExitDuringStep.py 
b/lldb/test/API/functionalities/thread/exit_during_step/TestExitDuringStep.py
index a420606775b14..fa913a0f4321a 100644
--- 
a/lldb/test/API/functionalities/thread/exit_during_step/TestExitDuringStep.py
+++ 
b/lldb/test/API/functionalities/thread/exit_during_step/TestExitDuringStep.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class ExitDuringStepTestCase(TestBase):
     @skipIfWindows  # This is flakey on Windows: llvm.org/pr38373
     def test(self):
diff --git 
a/lldb/test/API/functionalities/thread/ignore_suspended/TestIgnoreSuspendedThread.py
 
b/lldb/test/API/functionalities/thread/ignore_suspended/TestIgnoreSuspendedThread.py
index 3200047ca6740..a3361581ea59b 100644
--- 
a/lldb/test/API/functionalities/thread/ignore_suspended/TestIgnoreSuspendedThread.py
+++ 
b/lldb/test/API/functionalities/thread/ignore_suspended/TestIgnoreSuspendedThread.py
@@ -8,7 +8,7 @@
 import lldbsuite.test.lldbutil as lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class IgnoreSuspendedThreadTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/functionalities/thread/main_thread_exit/TestMainThreadExit.py 
b/lldb/test/API/functionalities/thread/main_thread_exit/TestMainThreadExit.py
index 6a2de4f123840..1e2e2c2132279 100644
--- 
a/lldb/test/API/functionalities/thread/main_thread_exit/TestMainThreadExit.py
+++ 
b/lldb/test/API/functionalities/thread/main_thread_exit/TestMainThreadExit.py
@@ -9,7 +9,7 @@
 import lldbsuite.test.lldbutil as lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class ThreadExitTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/functionalities/thread/multi_break/TestMultipleBreakpoints.py 
b/lldb/test/API/functionalities/thread/multi_break/TestMultipleBreakpoints.py
index fe30138f78157..a8037a9f2f46f 100644
--- 
a/lldb/test/API/functionalities/thread/multi_break/TestMultipleBreakpoints.py
+++ 
b/lldb/test/API/functionalities/thread/multi_break/TestMultipleBreakpoints.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class MultipleBreakpointTestCase(TestBase):
     def setUp(self):
         # Call super's setUp().
diff --git a/lldb/test/API/functionalities/thread/num_threads/TestNumThreads.py 
b/lldb/test/API/functionalities/thread/num_threads/TestNumThreads.py
index 613944b60c7fa..b757cb051dc8c 100644
--- a/lldb/test/API/functionalities/thread/num_threads/TestNumThreads.py
+++ b/lldb/test/API/functionalities/thread/num_threads/TestNumThreads.py
@@ -9,7 +9,7 @@
 import lldbsuite.test.lldbutil as lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class NumberOfThreadsTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/functionalities/thread/state_after_expression/TestStateAfterExpression.py
 
b/lldb/test/API/functionalities/thread/state_after_expression/TestStateAfterExpression.py
index 91cf98622d4e3..390a3f1deb0e2 100644
--- 
a/lldb/test/API/functionalities/thread/state_after_expression/TestStateAfterExpression.py
+++ 
b/lldb/test/API/functionalities/thread/state_after_expression/TestStateAfterExpression.py
@@ -10,7 +10,7 @@
 from lldbsuite.test.decorators import *
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class TestStopReasonAfterExpression(TestBase):
     @skipIfWindows
     @expectedFailureAll(oslist=["freebsd"], bugnumber="llvm.org/pr48415")
diff --git a/lldb/test/API/functionalities/thread/step_out/TestThreadStepOut.py 
b/lldb/test/API/functionalities/thread/step_out/TestThreadStepOut.py
index 780ee61f69f48..9c0cac1821b98 100644
--- a/lldb/test/API/functionalities/thread/step_out/TestThreadStepOut.py
+++ b/lldb/test/API/functionalities/thread/step_out/TestThreadStepOut.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class ThreadStepOutTestCase(TestBase):
     @skipIfWindows  # This test will hang on windows llvm.org/pr21753
     @expectedFailureAll(oslist=["windows"])
diff --git a/lldb/test/API/functionalities/thread/thread_exit/TestThreadExit.py 
b/lldb/test/API/functionalities/thread/thread_exit/TestThreadExit.py
index 793ef61be7332..143f592d8324f 100644
--- a/lldb/test/API/functionalities/thread/thread_exit/TestThreadExit.py
+++ b/lldb/test/API/functionalities/thread/thread_exit/TestThreadExit.py
@@ -9,7 +9,7 @@
 import lldbsuite.test.lldbutil as lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class ThreadExitTestCase(TestBase):
     def setUp(self):
         # Call super's setUp().
diff --git 
a/lldb/test/API/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py
 
b/lldb/test/API/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py
index 0f3582ce42023..63e954f8f7b4c 100644
--- 
a/lldb/test/API/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py
+++ 
b/lldb/test/API/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py
@@ -23,7 +23,7 @@ def set_thread_name(test, thread, breakpoint):
     breakpoint.SetThreadName("main-thread")
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class ThreadSpecificBreakTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/functionalities/thread/thread_specific_break_plus_condition/TestThreadSpecificBpPlusCondition.py
 
b/lldb/test/API/functionalities/thread/thread_specific_break_plus_condition/TestThreadSpecificBpPlusCondition.py
index 3113958717b73..44287ddd1011b 100644
--- 
a/lldb/test/API/functionalities/thread/thread_specific_break_plus_condition/TestThreadSpecificBpPlusCondition.py
+++ 
b/lldb/test/API/functionalities/thread/thread_specific_break_plus_condition/TestThreadSpecificBpPlusCondition.py
@@ -10,7 +10,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class ThreadSpecificBreakPlusConditionTestCase(TestBase):
     # test frequently times out or hangs
     @skipIfDarwin
diff --git 
a/lldb/test/API/lang/c/step_over_no_deadlock/TestStepOverDoesntBlock.py 
b/lldb/test/API/lang/c/step_over_no_deadlock/TestStepOverDoesntBlock.py
index 0cd68718c674b..2b3ab31f3ab63 100644
--- a/lldb/test/API/lang/c/step_over_no_deadlock/TestStepOverDoesntBlock.py
+++ b/lldb/test/API/lang/c/step_over_no_deadlock/TestStepOverDoesntBlock.py
@@ -8,7 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class StepOverDoesntDeadlockTestCase(TestBase):
     def test_step_over(self):
         """Test that when step over steps over a function it lets other 
threads run."""
diff --git a/lldb/test/API/lang/c/tls_globals/TestTlsGlobals.py 
b/lldb/test/API/lang/c/tls_globals/TestTlsGlobals.py
index f2e206c4f1ca8..bb0ea42930f08 100644
--- a/lldb/test/API/lang/c/tls_globals/TestTlsGlobals.py
+++ b/lldb/test/API/lang/c/tls_globals/TestTlsGlobals.py
@@ -8,7 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfTargetDoesNotSupportSharedLibraries()
 class TlsGlobalTestCase(TestBase):
     def setUp(self):
diff --git 
a/lldb/test/API/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py
 
b/lldb/test/API/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py
index 3816ba9164d6c..65c0a8b842fad 100644
--- 
a/lldb/test/API/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py
+++ 
b/lldb/test/API/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py
@@ -10,7 +10,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class CreateDuringInstructionStepTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/python_api/lldbutil/iter/TestLLDBIterator.py 
b/lldb/test/API/python_api/lldbutil/iter/TestLLDBIterator.py
index 52cf41e2d57d6..3bef1185ab3d5 100644
--- a/lldb/test/API/python_api/lldbutil/iter/TestLLDBIterator.py
+++ b/lldb/test/API/python_api/lldbutil/iter/TestLLDBIterator.py
@@ -8,7 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class LLDBIteratorTestCase(TestBase):
     def setUp(self):
         # Call super's setUp().
diff --git a/lldb/test/API/python_api/lldbutil/iter/TestRegistersIterator.py 
b/lldb/test/API/python_api/lldbutil/iter/TestRegistersIterator.py
index 26a36c634517e..9c4397d6aaa6e 100644
--- a/lldb/test/API/python_api/lldbutil/iter/TestRegistersIterator.py
+++ b/lldb/test/API/python_api/lldbutil/iter/TestRegistersIterator.py
@@ -8,7 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class RegistersIteratorTestCase(TestBase):
     def setUp(self):
         # Call super's setUp().
diff --git 
a/lldb/test/API/python_api/watchpoint/watchlocation/TestSetWatchlocation.py 
b/lldb/test/API/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
index d2eb17ab783bf..c5d589618be7a 100644
--- a/lldb/test/API/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
+++ b/lldb/test/API/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
@@ -8,7 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class SetWatchlocationAPITestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py 
b/lldb/test/API/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
index 51aa8b238a43b..cc51ce271a836 100644
--- 
a/lldb/test/API/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
+++ 
b/lldb/test/API/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
@@ -8,7 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class TargetWatchpointCreateByAddressPITestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/tools/lldb-dap/stopped-events/TestDAP_stopped_events.py 
b/lldb/test/API/tools/lldb-dap/stopped-events/TestDAP_stopped_events.py
index 54b0c556f0a62..c793ed02b2126 100644
--- a/lldb/test/API/tools/lldb-dap/stopped-events/TestDAP_stopped_events.py
+++ b/lldb/test/API/tools/lldb-dap/stopped-events/TestDAP_stopped_events.py
@@ -8,7 +8,7 @@
     expectedFailureAll,
     expectedFailureNetBSD,
     skipIfLinux,
-    skipIfTargetDoesNotSupportThreads,
+    requireThreadSupport,
     skipIfWindows,
 )
 from lldbsuite.test.lldbtest import line_number
@@ -18,7 +18,7 @@
 
 @skipIfWindows  # This is flakey on Windows: llvm.org/pr24668, llvm.org/pr38373
 @skipIfLinux
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class TestDAP_stopped_events(DAPTestCaseBase):
     """
     Test validates different operations that produce 'stopped' events.
diff --git a/lldb/test/API/tools/lldb-dap/threads/TestDAP_threads.py 
b/lldb/test/API/tools/lldb-dap/threads/TestDAP_threads.py
index 05e87e3f437c6..838b1771e718b 100644
--- a/lldb/test/API/tools/lldb-dap/threads/TestDAP_threads.py
+++ b/lldb/test/API/tools/lldb-dap/threads/TestDAP_threads.py
@@ -2,13 +2,13 @@
 Test lldb-dap threads request
 """
 
-from lldbsuite.test.decorators import skipIfTargetDoesNotSupportThreads
+from lldbsuite.test.decorators import requireThreadSupport
 from lldbsuite.test.lldbtest import line_number
 from lldbsuite.test.tools.lldb_dap import DAPTestCaseBase
 from lldbsuite.test.tools.lldb_dap.types import LaunchArgs, StoppedReason, 
ThreadsArgs
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class TestDAP_threads(DAPTestCaseBase):
     def test_correct_thread(self):
         """
diff --git a/lldb/test/API/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py 
b/lldb/test/API/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py
index d0bbd70329354..1a13212495292 100644
--- a/lldb/test/API/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py
+++ b/lldb/test/API/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py
@@ -7,7 +7,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 @skipIfMTE  # MTE security transition shims restrict socket operations.
 class 
TestGdbRemoteThreadsInStopReply(gdbremote_testcase.GdbRemoteTestCaseBase):
     ENABLE_THREADS_IN_STOP_REPLY_ENTRIES = [
diff --git 
a/lldb/test/API/tools/lldb-server/cached-memory-region-info/TestCachedMemoryRegionInfo.py
 
b/lldb/test/API/tools/lldb-server/cached-memory-region-info/TestCachedMemoryRegionInfo.py
index 35c2fc6fec8ca..0f963123c55b2 100644
--- 
a/lldb/test/API/tools/lldb-server/cached-memory-region-info/TestCachedMemoryRegionInfo.py
+++ 
b/lldb/test/API/tools/lldb-server/cached-memory-region-info/TestCachedMemoryRegionInfo.py
@@ -9,7 +9,7 @@
 
 
 @skipIfWindowsAndNoLLDBServer
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class MemoryRegionInfoPacketsCached(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/tools/lldb-server/vCont-threads/TestPartialResume.py 
b/lldb/test/API/tools/lldb-server/vCont-threads/TestPartialResume.py
index 370976be69578..ed4ebe625076a 100644
--- a/lldb/test/API/tools/lldb-server/vCont-threads/TestPartialResume.py
+++ b/lldb/test/API/tools/lldb-server/vCont-threads/TestPartialResume.py
@@ -5,7 +5,7 @@
 from lldbsuite.test.lldbtest import *
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class TestPartialResume(gdbremote_testcase.GdbRemoteTestCaseBase):
     THREAD_MATCH_RE = re.compile(r"thread ([0-9a-f]+) running")
 
diff --git a/lldb/test/API/tools/lldb-server/vCont-threads/TestSignal.py 
b/lldb/test/API/tools/lldb-server/vCont-threads/TestSignal.py
index 667411c58a61e..441d18381e8ba 100644
--- a/lldb/test/API/tools/lldb-server/vCont-threads/TestSignal.py
+++ b/lldb/test/API/tools/lldb-server/vCont-threads/TestSignal.py
@@ -6,7 +6,7 @@
 from lldbsuite.test import lldbutil
 
 
-@skipIfTargetDoesNotSupportThreads()
+@requireThreadSupport()
 class TestSignal(gdbremote_testcase.GdbRemoteTestCaseBase):
     def start_threads(self, num):
         procs = self.prep_debug_monitor_and_inferior(inferior_args=[str(num)])

_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to