Skip to content

[lldb] Decorate tests that use threading#193117

Open
JDevlieghere wants to merge 2 commits intollvm:mainfrom
JDevlieghere:decorate-threading-tests
Open

[lldb] Decorate tests that use threading#193117
JDevlieghere wants to merge 2 commits intollvm:mainfrom
JDevlieghere:decorate-threading-tests

Conversation

@JDevlieghere
Copy link
Copy Markdown
Member

Add a new decorator skipIfTargetDoesNotSupportThreads to skip tests that use threading. This is motivated by running the test suite targeting WebAssembly, where wasip1 does not support thread. There are variants that do support threading (e.g. wasip1-threading) that the current implementation accounts for.

Add a new decorator `skipIfTargetDoesNotSupportThreads` to skip tests
that use threading. This is motivated by running the test suite
targeting WebAssembly, where `wasip1` does not support thread. There are
variants that do support threading (`wasip1-threading`, `wasip2`) that
the current implementation accounts for.
@llvmbot
Copy link
Copy Markdown
Member

llvmbot commented Apr 20, 2026

@llvm/pr-subscribers-lldb

Author: Jonas Devlieghere (JDevlieghere)

Changes

Add a new decorator skipIfTargetDoesNotSupportThreads to skip tests that use threading. This is motivated by running the test suite targeting WebAssembly, where wasip1 does not support thread. There are variants that do support threading (e.g. wasip1-threading) that the current implementation accounts for.


Patch is 53.68 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/193117.diff

87 Files Affected:

  • (modified) lldb/packages/Python/lldbsuite/test/decorators.py (+12)
  • (modified) lldb/test/API/api/multiple-debuggers/TestMultipleDebuggers.py (+1)
  • (modified) lldb/test/API/api/multiple-targets/TestMultipleTargets.py (+1)
  • (modified) lldb/test/API/api/multithreaded/TestMultithreaded.py (+1)
  • (modified) lldb/test/API/commands/expression/no-deadlock/TestExprDoesntBlock.py (+1)
  • (modified) lldb/test/API/commands/gui/expand-threads-tree/TestGuiExpandThreadsTree.py (+1)
  • (modified) lldb/test/API/commands/gui/spawn-threads/TestGuiSpawnThreads.py (+1)
  • (modified) lldb/test/API/commands/process/attach-resume/TestAttachResume.py (+1)
  • (modified) lldb/test/API/commands/process/detach-resumes/TestDetachResumes.py (+1)
  • (modified) lldb/test/API/commands/register/aarch64_sme_z_registers/za_dynamic_resize/TestZAThreadedDynamic.py (+1)
  • (modified) lldb/test/API/commands/register/aarch64_sve_registers/rw_access_dynamic_resize/TestSVEThreadedDynamic.py (+1)
  • (modified) lldb/test/API/commands/thread/backtrace/TestThreadBacktraceRepeat.py (+1)
  • (modified) lldb/test/API/commands/trace/multiple-threads/TestTraceStartStopMultipleThreads.py (+1)
  • (modified) lldb/test/API/commands/watchpoints/hello_watchlocation/TestWatchLocation.py (+1)
  • (modified) lldb/test/API/commands/watchpoints/multiple_threads/TestWatchpointMultipleThreads.py (+1)
  • (modified) lldb/test/API/commands/watchpoints/watchpoint_set_command/TestWatchLocationWithWatchSet.py (+1)
  • (modified) lldb/test/API/functionalities/breakpoint/breakpoint_command_auto_continue/TestBreakpointCommandAutoContinue.py (+1)
  • (modified) lldb/test/API/functionalities/breakpoint/breakpoint_on_lambda_capture/TestBreakOnLambdaCapture.py (+1)
  • (modified) lldb/test/API/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/TestHWBreakMultiThread.py (+1)
  • (modified) lldb/test/API/functionalities/breakpoint/two_hits_one_actual/TestTwoHitsOneActual.py (+1)
  • (modified) lldb/test/API/functionalities/plugins/python_os_plugin/stepping_plugin_threads/TestOSPluginStepping.py (+1)
  • (modified) lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidumpYaml.py (+1)
  • (modified) lldb/test/API/functionalities/single-thread-step/TestSingleThreadStepTimeout.py (+1)
  • (modified) lldb/test/API/functionalities/thread/backtrace_limit/TestBacktraceLimit.py (+1)
  • (modified) lldb/test/API/functionalities/thread/break_after_join/TestBreakAfterJoin.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBatchedBreakpointStepOver.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointDelayBreakpointOneSignal.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointOneDelayBreakpointThreads.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointsDelayedBreakpointOneWatchpoint.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithBreak.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithSignal.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpoint.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpointBreakpointSignal.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelaySignalBreak.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelaySignalWatch.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayWatchBreak.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayedCrashWithBreakpointSignal.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayedCrashWithBreakpointWatchpoint.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyBreakpoints.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyCrash.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManySignals.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyWatchpoints.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentNWatchNBreak.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalBreak.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalDelayBreak.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalDelayWatch.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalNWatchNBreak.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalWatch.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalWatchBreak.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointThreads.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneDelaySignal.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneSignal.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneWatchpoint.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointThreads.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneBreakpoint.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneDelayBreakpoint.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneSignal.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchBreak.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchBreakDelay.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchpointDelayWatchpointOneBreakpoint.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchpointWithDelayWatchpointThreads.py (+1)
  • (modified) lldb/test/API/functionalities/thread/concurrent_events/exit/TestConcurrentThreadExit.py (+1)
  • (modified) lldb/test/API/functionalities/thread/create_after_attach/TestCreateAfterAttach.py (+1)
  • (modified) lldb/test/API/functionalities/thread/create_during_step/TestCreateDuringStep.py (+1)
  • (modified) lldb/test/API/functionalities/thread/exit_during_break/TestExitDuringBreak.py (+1)
  • (modified) lldb/test/API/functionalities/thread/exit_during_expression/TestExitDuringExpression.py (+1)
  • (modified) lldb/test/API/functionalities/thread/exit_during_step/TestExitDuringStep.py (+1)
  • (modified) lldb/test/API/functionalities/thread/ignore_suspended/TestIgnoreSuspendedThread.py (+1)
  • (modified) lldb/test/API/functionalities/thread/jump/TestThreadJump.py (+1)
  • (modified) lldb/test/API/functionalities/thread/main_thread_exit/TestMainThreadExit.py (+1)
  • (modified) lldb/test/API/functionalities/thread/multi_break/TestMultipleBreakpoints.py (+1)
  • (modified) lldb/test/API/functionalities/thread/num_threads/TestNumThreads.py (+1)
  • (modified) lldb/test/API/functionalities/thread/state_after_expression/TestStateAfterExpression.py (+1)
  • (modified) lldb/test/API/functionalities/thread/step_out/TestThreadStepOut.py (+1)
  • (modified) lldb/test/API/functionalities/thread/thread_exit/TestThreadExit.py (+1)
  • (modified) lldb/test/API/functionalities/thread/thread_specific_break_plus_condition/TestThreadSpecificBpPlusCondition.py (+1)
  • (modified) lldb/test/API/lang/c/step_over_no_deadlock/TestStepOverDoesntBlock.py (+1)
  • (modified) lldb/test/API/lang/c/tls_globals/TestTlsGlobals.py (+1)
  • (modified) lldb/test/API/python_api/lldbutil/iter/TestLLDBIterator.py (+1)
  • (modified) lldb/test/API/python_api/lldbutil/iter/TestRegistersIterator.py (+1)
  • (modified) lldb/test/API/python_api/lldbutil/process/TestPrintStackTraces.py (+1)
  • (modified) lldb/test/API/python_api/module_section/TestModuleAndSection.py (+1)
  • (modified) lldb/test/API/python_api/watchpoint/watchlocation/TestSetWatchlocation.py (+1)
  • (modified) lldb/test/API/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py (+1)
  • (modified) lldb/test/API/tools/lldb-dap/step/TestDAP_step.py (+1)
  • (modified) lldb/test/API/tools/lldb-dap/stepInTargets/TestDAP_stepInTargets.py (+1)
  • (modified) lldb/test/API/tools/lldb-dap/threads/TestDAP_threads.py (+1)
diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py
index c2923dcc18ed7..72468e1ef932a 100644
--- a/lldb/packages/Python/lldbsuite/test/decorators.py
+++ b/lldb/packages/Python/lldbsuite/test/decorators.py
@@ -983,6 +983,18 @@ def skipUnlessPlatform(oslist):
     )
 
 
+def skipIfTargetDoesNotSupportThreads():
+    """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,
+    )
+
+
 def skipUnlessArch(arch):
     """Decorate the item to skip tests unless running on the specified architecture."""
 
diff --git a/lldb/test/API/api/multiple-debuggers/TestMultipleDebuggers.py b/lldb/test/API/api/multiple-debuggers/TestMultipleDebuggers.py
index fb3cad9b78b35..211b86457a635 100644
--- a/lldb/test/API/api/multiple-debuggers/TestMultipleDebuggers.py
+++ b/lldb/test/API/api/multiple-debuggers/TestMultipleDebuggers.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+@skipIfTargetDoesNotSupportThreads()
 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 6eec6559fbef5..2652c9235a671 100644
--- a/lldb/test/API/api/multiple-targets/TestMultipleTargets.py
+++ b/lldb/test/API/api/multiple-targets/TestMultipleTargets.py
@@ -8,6 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
+@skipIfTargetDoesNotSupportThreads()
 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 6cff2b1039582..ebe80c7de576a 100644
--- a/lldb/test/API/api/multithreaded/TestMultithreaded.py
+++ b/lldb/test/API/api/multithreaded/TestMultithreaded.py
@@ -8,6 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
+@skipIfTargetDoesNotSupportThreads()
 @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 7c4120a6a85a7..134187d21a035 100644
--- a/lldb/test/API/commands/expression/no-deadlock/TestExprDoesntBlock.py
+++ b/lldb/test/API/commands/expression/no-deadlock/TestExprDoesntBlock.py
@@ -8,6 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
+@skipIfTargetDoesNotSupportThreads()
 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 bf0d0766f4f99..266601bafe7ad 100644
--- a/lldb/test/API/commands/gui/expand-threads-tree/TestGuiExpandThreadsTree.py
+++ b/lldb/test/API/commands/gui/expand-threads-tree/TestGuiExpandThreadsTree.py
@@ -10,6 +10,7 @@
 from lldbsuite.test.lldbpexpect import PExpectTest
 
 
+@skipIfTargetDoesNotSupportThreads()
 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 de61d7967d2e6..c504abe8b5ef2 100644
--- a/lldb/test/API/commands/gui/spawn-threads/TestGuiSpawnThreads.py
+++ b/lldb/test/API/commands/gui/spawn-threads/TestGuiSpawnThreads.py
@@ -11,6 +11,7 @@
 import sys
 
 
+@skipIfTargetDoesNotSupportThreads()
 class TestGuiSpawnThreadsTest(PExpectTest):
     # PExpect uses many timeouts internally and doesn't play well
     # under ASAN on a loaded machine..
diff --git a/lldb/test/API/commands/process/attach-resume/TestAttachResume.py b/lldb/test/API/commands/process/attach-resume/TestAttachResume.py
index 0be45c9e0934f..c121c2e40beb7 100644
--- a/lldb/test/API/commands/process/attach-resume/TestAttachResume.py
+++ b/lldb/test/API/commands/process/attach-resume/TestAttachResume.py
@@ -11,6 +11,7 @@
 exe_name = "AttachResume"  # Must match Makefile
 
 
+@skipIfTargetDoesNotSupportThreads()
 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 439376102c3f6..e060aa2db6b34 100644
--- a/lldb/test/API/commands/process/detach-resumes/TestDetachResumes.py
+++ b/lldb/test/API/commands/process/detach-resumes/TestDetachResumes.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+@skipIfTargetDoesNotSupportThreads()
 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 1929c46264d7d..4f41aa78664a3 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,6 +10,7 @@
 from lldbsuite.test import lldbutil
 
 
+@skipIfTargetDoesNotSupportThreads()
 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 defa252cd51fc..7458bd20db37c 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,6 +15,7 @@
 from lldbsuite.test import lldbutil
 
 
+@skipIfTargetDoesNotSupportThreads()
 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 571024417560f..10c481c3a7be1 100644
--- a/lldb/test/API/commands/thread/backtrace/TestThreadBacktraceRepeat.py
+++ b/lldb/test/API/commands/thread/backtrace/TestThreadBacktraceRepeat.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+@skipIfTargetDoesNotSupportThreads()
 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 017f5c845c7c6..5bda951578656 100644
--- a/lldb/test/API/commands/trace/multiple-threads/TestTraceStartStopMultipleThreads.py
+++ b/lldb/test/API/commands/trace/multiple-threads/TestTraceStartStopMultipleThreads.py
@@ -6,6 +6,7 @@
 from lldbsuite.test.decorators import *
 
 
+@skipIfTargetDoesNotSupportThreads()
 @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 401c228cc4187..df88792ed1d29 100644
--- a/lldb/test/API/commands/watchpoints/hello_watchlocation/TestWatchLocation.py
+++ b/lldb/test/API/commands/watchpoints/hello_watchlocation/TestWatchLocation.py
@@ -10,6 +10,7 @@
 from lldbsuite.test import lldbutil
 
 
+@skipIfTargetDoesNotSupportThreads()
 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 fe1d4b57c8ee5..2b03d73b1aa05 100644
--- a/lldb/test/API/commands/watchpoints/multiple_threads/TestWatchpointMultipleThreads.py
+++ b/lldb/test/API/commands/watchpoints/multiple_threads/TestWatchpointMultipleThreads.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+@skipIfTargetDoesNotSupportThreads()
 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 cd13690655e45..e912be09539f9 100644
--- a/lldb/test/API/commands/watchpoints/watchpoint_set_command/TestWatchLocationWithWatchSet.py
+++ b/lldb/test/API/commands/watchpoints/watchpoint_set_command/TestWatchLocationWithWatchSet.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+@skipIfTargetDoesNotSupportThreads()
 class WatchLocationUsingWatchpointSetTestCase(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 ebf75f8563256..613b510d0a8b5 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,6 +11,7 @@
 from lldbsuite.test.lldbpexpect import PExpectTest
 
 
+@skipIfTargetDoesNotSupportThreads()
 @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 db54efdc7edf1..1efbc9b32ed15 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,6 +10,7 @@
 from lldbsuite.test.lldbtest import *
 
 
+@skipIfTargetDoesNotSupportThreads()
 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 4632c3bed1899..fe7e06884413c 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,6 +11,7 @@
 from functionalities.breakpoint.hardware_breakpoints.base import *
 
 
+@skipIfTargetDoesNotSupportThreads()
 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 4971c1d4ced8a..cc9d047d1cd84 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,6 +11,7 @@
 from lldbsuite.test.lldbtest import *
 
 
+@skipIfTargetDoesNotSupportThreads()
 class TestTwoHitsOneActual(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 dc555dd286365..a5bc696e3ef7c 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,6 +10,7 @@
 import lldbsuite.test.lldbutil as lldbutil
 
 
+@skipIfTargetDoesNotSupportThreads()
 class TestOSPluginStepping(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidumpYaml.py b/lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidumpYaml.py
index c0572e34d7746..9a9752f62f063 100644
--- a/lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidumpYaml.py
+++ b/lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidumpYaml.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+@skipIfTargetDoesNotSupportThreads()
 class AddressRange:
     begin: int
     end: int
diff --git a/lldb/test/API/functionalities/single-thread-step/TestSingleThreadStepTimeout.py b/lldb/test/API/functionalities/single-thread-step/TestSingleThreadStepTimeout.py
index 214a2fb6cb87b..3c74208da70cc 100644
--- a/lldb/test/API/functionalities/single-thread-step/TestSingleThreadStepTimeout.py
+++ b/lldb/test/API/functionalities/single-thread-step/TestSingleThreadStepTimeout.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+@skipIfTargetDoesNotSupportThreads()
 class SingleThreadStepTimeoutTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/functionalities/thread/backtrace_limit/TestBacktraceLimit.py b/lldb/test/API/functionalities/thread/backtrace_limit/TestBacktraceLimit.py
index fded504f7c612..3b788cd5a88a2 100644
--- a/lldb/test/API/functionalities/thread/backtrace_limit/TestBacktraceLimit.py
+++ b/lldb/test/API/functionalities/thread/backtrace_limit/TestBacktraceLimit.py
@@ -8,6 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
+@skipIfTargetDoesNotSupportThreads()
 class BacktraceLimitSettingTest(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 eb5692e782e08..0e80d8b7a11fb 100644
--- a/lldb/test/API/functionalities/thread/break_after_join/TestBreakAfterJoin.py
+++ b/lldb/test/API/functionalities/thread/break_after_join/TestBreakAfterJoin.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+@skipIfTargetDoesNotSupportThreads()
 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 4f480e64a9dbd..922805881c022 100644
--- a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBatchedBreakpointStepOver.py
+++ b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBatchedBreakpointStepOver.py
@@ -12,6 +12,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
+@skipIfTargetDoesNotSupportThreads()
 @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 ae2d6feb7793d..607605e7e9cc9 100644
--- a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointDelayBreakpointOneSignal.py
+++ b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointDelayBreakpointOneSignal.py
@@ -3,6 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
+@skipIfTargetDoesNotSupportThreads()
 @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 cffc82db21178..b668303552f0d 100644
--- a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointOneDelayBreakpointThreads.py
+++ b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointOneDelayBreakpointThreads.py
@@ -3,6 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
+@skipIfTargetDoesNotSupportThreads()
 @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 a7066f551e485..559f09aeb34c6 100644
--- a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointsDelayedBreakpointOneWatchpoint.py
+++ b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointsDelayedBreakpointOneWatchpoint.py
@@ -3,6 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
+@skipIfTargetDoesNotSupportThreads()
 @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 60b0fe9b8c234..10b54f6cea578 100644
--- a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithBreak.py
+++ b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithBreak.py
@@ -3,6 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
+@skipIfTargetDoesNotSupportThreads()
 @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 878fc59b93236..26178c5d9c438 100644
--- a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithSignal.py
+++ b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithSignal.py
@@ -3,6 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
+@skipIfTargetDoesNotSupportThreads()
 @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 77e3ccea6ca48..1c3b81b303397 100644
--- a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpoint.py
+++ b/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpoint.py
@@ -3,6 +3,7 @@
 from lldbsuite.test.lldbtest import TestBase
 
 
+@skipIfTargetDoesNotSupportThreads()
 @skipIfWindows
 class ConcurrentCrashWithWatchpoint(ConcurrentEventsBase):
     # Atomic sequences are not supported yet for MIPS in LLDB.
diff --git a/lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpointBreakpointSigna...
[truncated]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants