[Lldb-commits] [lldb] [NFC][lldb] Make skipIfTargetDoesNotSupportThreads a require decorator (PR #215614)

Charles Zablit via lldb-commits lldb-commits at lists.llvm.org
Thu Aug 13 06:38:48 PDT 2026


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

>From 114571f5426f03d928ca97446a55759c5f27cb2a Mon Sep 17 00:00:00 2001
From: Charles Zablit <c_zablit at apple.com>
Date: Tue, 11 Aug 2026 17:56:21 +0100
Subject: [PATCH 1/3] [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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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 *
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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 *
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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 *
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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 *
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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 *
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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 *
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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 *
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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")
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
- at skipIfTargetDoesNotSupportThreads()
+ at 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 *
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at 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
 
 
- at skipIfTargetDoesNotSupportThreads()
+ at requireThreadSupport()
 class TestSignal(gdbremote_testcase.GdbRemoteTestCaseBase):
     def start_threads(self, num):
         procs = self.prep_debug_monitor_and_inferior(inferior_args=[str(num)])

>From d910a36938152f90820c00f6e0a0d4a7189a87cf Mon Sep 17 00:00:00 2001
From: Charles Zablit <c_zablit at apple.com>
Date: Tue, 11 Aug 2026 18:18:13 +0100
Subject: [PATCH 2/3] fixup! [NFC][lldb] Make skipIfTargetDoesNotSupportThreads
 a require decorator

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

diff --git a/lldb/test/API/api/multiple-debuggers/TestMultipleDebuggers.py b/lldb/test/API/api/multiple-debuggers/TestMultipleDebuggers.py
index 3239038ab5765..13c2f5d961a78 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
 
 
- at requireThreadSupport()
+ at 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 0a0bdb6cc4c98..e04aec66bece0 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
 
 
- at requireThreadSupport()
+ at 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 f9da07cfc9f02..a81afac8dc812 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
 
 
- at requireThreadSupport()
+ at 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 5f162f49e26b7..aae82c72d986a 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
 
 
- at requireThreadSupport()
+ at 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 81837b74eb1ec..ca9f466c48ce0 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
 
 
- at requireThreadSupport()
+ at 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 50f9757ece1a5..9ea2f80bff789 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
 
 
- at requireThreadSupport()
+ at 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 e9d59b23d77aa..dcb86543f6a0f 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
 
 
- at requireThreadSupport()
+ at 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 9a7e235117d75..b7b00071da8df 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
 
 
- at requireThreadSupport()
+ at 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 215f0d3a44dd7..56d7a52b67b76 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
 
 
- at requireThreadSupport()
+ at 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 3b188e662ab46..32fb332bd4fe0 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
 
 
- at requireThreadSupport()
+ at 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 da0aef343d11c..50ed9dfe1b31c 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
 
 
- at requireThreadSupport()
+ at 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 0587f8a9e8a5a..919f0f3af794a 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 *
 
 
- at requireThreadSupport()
+ at 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 9253845901458..bce56ce6e79e4 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
 
 
- at requireThreadSupport()
+ at 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 87330f6dfcc04..97519fa454536 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
 
 
- at requireThreadSupport()
+ at 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 a1b189b1191df..b598d49cc5031 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
 
 
- at requireThreadSupport()
+ at 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 e924ce17bb8d4..7b01a9eebd37d 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
 
 
- at requireThreadSupport()
+ at 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 47988c31953f2..1ffcd282e897c 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
 
 
- at requireThreadSupport()
+ at 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 95524b412b602..9f1c234ca57bb 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 *
 
 
- at requireThreadSupport()
+ at 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 af17c52530541..eb6cb53fa0499 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 *
 
 
- at requireThreadSupport()
+ at 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 2175392745872..dba12cd882159 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 *
 
 
- at requireThreadSupport()
+ at 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 913ab42e0aa18..701d900eaf975 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 *
 
 
- at requireThreadSupport()
+ at 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 68199ee2fc528..dbebcd793535a 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
 
 
- at requireThreadSupport()
+ at 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 6f219e2fba2f2..f44e6f4c8cc71 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
 
 
- at requireThreadSupport()
+ at 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 0fc4c9eba52fa..22cc578d2d6ce 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
 
 
- at requireThreadSupport()
+ at 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 a877063544143..a053475900f42 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
 
 
- at requireThreadSupport()
+ at 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 5082a18a322ed..287e2abc6cb7b 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
 
 
- at requireThreadSupport()
+ at 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 79698728b116a..897ec8eae8cf5 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
 
 
- at requireThreadSupport()
+ at 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 d4e2924bee098..15adb8d1820ec 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
 
 
- at requireThreadSupport()
+ at 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 7b2b38f2faacf..5d0a8b12fa728 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
 
 
- at requireThreadSupport()
+ at 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 7cd45150cc386..993a7814c8a85 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
 
 
- at requireThreadSupport()
+ at 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 79c919d5c5bb0..41e586462a0e9 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
 
 
- at requireThreadSupport()
+ at 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 56e0de1498ea3..f17d485191c34 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
 
 
- at requireThreadSupport()
+ at 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 777a1b0529768..20f2e3876ccf9 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
 
 
- at requireThreadSupport()
+ at 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 20aef12137141..1c52d3dad5332 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
 
 
- at requireThreadSupport()
+ at 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 fcebdfe00d872..da1b6a98cb971 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
 
 
- at requireThreadSupport()
+ at 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 35f5bec12dbf1..420896d8ad606 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
 
 
- at requireThreadSupport()
+ at 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 0327e7f9d216c..9953d975905d1 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
 
 
- at requireThreadSupport()
+ at 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 f521d882f208c..01fb26e6e1847 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
 
 
- at requireThreadSupport()
+ at 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 bcccc53573876..25c0b9b3d2fca 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
 
 
- at requireThreadSupport()
+ at 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 be8bc04a301c1..ecf3b431448c1 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
 
 
- at requireThreadSupport()
+ at 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 f7d8e672cfa10..6563796fad3a0 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
 
 
- at requireThreadSupport()
+ at 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 4f3a8d0e12749..2eba8919499c9 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
 
 
- at requireThreadSupport()
+ at 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 4a185a80d339d..86a41d60f2303 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
 
 
- at requireThreadSupport()
+ at 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 64329c8e34259..b45e5705fc436 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
 
 
- at requireThreadSupport()
+ at 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 74fc7df553887..7f70e45484d10 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
 
 
- at requireThreadSupport()
+ at 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 517172bbf2166..a546f93de5c55 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
 
 
- at requireThreadSupport()
+ at 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 d31174d690144..f364bad4d5e2f 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
 
 
- at requireThreadSupport()
+ at 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 44ca319b46d79..b40cf190dcfe3 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
 
 
- at requireThreadSupport()
+ at 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 5e22a90ea4446..d36ec57fdea56 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
 
 
- at requireThreadSupport()
+ at 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 1e6e3e341b09a..ba749b805ce7b 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
 
 
- at requireThreadSupport()
+ at 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 1df6c97b02b58..b09387ea8e346 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
 
 
- at requireThreadSupport()
+ at 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 a5838d29cfccd..6cd597645cf10 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
 
 
- at requireThreadSupport()
+ at 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 3967f616d7d3c..0f3466ce72687 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
 
 
- at requireThreadSupport()
+ at 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 fda5fceab17fa..479304e4cf94f 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
 
 
- at requireThreadSupport()
+ at 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 01ad52bcc89e5..08c4bde7cf685 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
 
 
- at requireThreadSupport()
+ at 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 de0020a706e45..1d2e37395aa66 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
 
 
- at requireThreadSupport()
+ at 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 fb7a6898aa966..ea82a31f0b9f4 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
 
 
- at requireThreadSupport()
+ at 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 b1b3808cdc7c6..6ce092e91ced5 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
 
 
- at requireThreadSupport()
+ at 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 05250be5725f1..8f07f04cdd14a 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
 
 
- at requireThreadSupport()
+ at 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 19a9561c73432..884ebc4fe5540 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
 
 
- at requireThreadSupport()
+ at 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 695ac3b158196..5e8d52f7c1e3b 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
 
 
- at requireThreadSupport()
+ at 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 9182f3eb3bfc0..ccf8b94bcefe4 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
 
 
- at requireThreadSupport()
+ at 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 a0216e26923d4..977b8890a1213 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
 
 
- at requireThreadSupport()
+ at 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 c665e40cf8b62..1ed0023d57fd6 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
 
 
- at requireThreadSupport()
+ at 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 d2fd9b03c3ceb..3cc9ad197f4f4 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
 
 
- at requireThreadSupport()
+ at 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 1c69bf2ca4632..f2853483d1afb 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
 
 
- at requireThreadSupport()
+ at 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 08078f71b7b2c..f9947abb65457 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
 
 
- at requireThreadSupport()
+ at 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 fae9d38d6aed3..7a7023e725251 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 *
 
 
- at requireThreadSupport()
+ at 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 fa913a0f4321a..28fa3c7cfcd07 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
 
 
- at requireThreadSupport()
+ at 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 a3361581ea59b..4060d8ae4fcb5 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
 
 
- at requireThreadSupport()
+ at 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 1e2e2c2132279..d80127aa247e3 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
 
 
- at requireThreadSupport()
+ at 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 a8037a9f2f46f..d98c6d63ddc9c 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
 
 
- at requireThreadSupport()
+ at 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 b757cb051dc8c..e6a8647f6b9cf 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
 
 
- at requireThreadSupport()
+ at 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 390a3f1deb0e2..f07be951c1560 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 *
 
 
- at requireThreadSupport()
+ at 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 9c0cac1821b98..a7e7b43a398c5 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
 
 
- at requireThreadSupport()
+ at 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 143f592d8324f..f1ab48d160495 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
 
 
- at requireThreadSupport()
+ at 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 63e954f8f7b4c..0e0d5ebd6441d 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")
 
 
- at requireThreadSupport()
+ at 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 44287ddd1011b..1e105ab66b4c2 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
 
 
- at requireThreadSupport()
+ at 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 2b3ab31f3ab63..2e0f8dcc041c2 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
 
 
- at requireThreadSupport()
+ at 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 bb0ea42930f08..a7f117e1749a6 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
 
 
- at requireThreadSupport()
+ at 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 65c0a8b842fad..7d7cd4ac1afd3 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
 
 
- at requireThreadSupport()
+ at 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 3bef1185ab3d5..250a84359af26 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
 
 
- at requireThreadSupport()
+ at 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 9c4397d6aaa6e..482496be199b3 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
 
 
- at requireThreadSupport()
+ at 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 c5d589618be7a..7895b8ccdc927 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
 
 
- at requireThreadSupport()
+ at 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 cc51ce271a836..66bc138805b1b 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
 
 
- at requireThreadSupport()
+ at 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 c793ed02b2126..48f78836a406b 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
@@ -18,7 +18,7 @@
 
 @skipIfWindows  # This is flakey on Windows: llvm.org/pr24668, llvm.org/pr38373
 @skipIfLinux
- at requireThreadSupport()
+ at 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 838b1771e718b..7f4052a19dfe9 100644
--- a/lldb/test/API/tools/lldb-dap/threads/TestDAP_threads.py
+++ b/lldb/test/API/tools/lldb-dap/threads/TestDAP_threads.py
@@ -8,7 +8,7 @@
 from lldbsuite.test.tools.lldb_dap.types import LaunchArgs, StoppedReason, ThreadsArgs
 
 
- at requireThreadSupport()
+ at 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 1a13212495292..b2e991fe3d848 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
 
 
- at requireThreadSupport()
+ at 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 0f963123c55b2..30b1de77eec52 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
- at requireThreadSupport()
+ at 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 ed4ebe625076a..facc9412a2173 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 *
 
 
- at requireThreadSupport()
+ at 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 441d18381e8ba..590edf04e1869 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
 
 
- at requireThreadSupport()
+ at requireThreadSupport
 class TestSignal(gdbremote_testcase.GdbRemoteTestCaseBase):
     def start_threads(self, num):
         procs = self.prep_debug_monitor_and_inferior(inferior_args=[str(num)])

>From 8c191b0475f1f4d054468da5ce457ae9ec772382 Mon Sep 17 00:00:00 2001
From: Charles Zablit <c_zablit at apple.com>
Date: Thu, 13 Aug 2026 14:38:25 +0100
Subject: [PATCH 3/3] fixup! [NFC][lldb] Make skipIfTargetDoesNotSupportThreads
 a require decorator

---
 lldb/packages/Python/lldbsuite/test/decorators.py             | 4 ++--
 .../tools/lldb-dap/stopped-events/TestDAP_stopped_events.py   | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py
index 399c253655451..60df2a15540a4 100644
--- a/lldb/packages/Python/lldbsuite/test/decorators.py
+++ b/lldb/packages/Python/lldbsuite/test/decorators.py
@@ -1248,14 +1248,14 @@ def requireDarwinHost(func):
 
 
 def requireThreadSupport(func):
-    """Skip tests that require thread support (e.g. pthreads)."""
+    """Mark the item as requiring thread support (e.g. pthreads) on the target."""
     platform = lldbplatformutil.getPlatform()
     return unittest.skipIf(
         # 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}"),
-    )
+    )(func)
 
 
 def skipIfTargetDoesNotSupportSharedLibraries():
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 48f78836a406b..3957d32dc17c7 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
@@ -7,8 +7,8 @@
 from lldbsuite.test.decorators import (
     expectedFailureAll,
     expectedFailureNetBSD,
-    skipIfLinux,
     requireThreadSupport,
+    skipIfLinux,
     skipIfWindows,
 )
 from lldbsuite.test.lldbtest import line_number



More information about the lldb-commits mailing list