[Lldb-commits] [lldb] [lldb] Add a @skipIfNoSignals decorator for Windows and Wasm (PR #194760)

Jonas Devlieghere via lldb-commits lldb-commits at lists.llvm.org
Wed Apr 29 10:54:44 PDT 2026


https://github.com/JDevlieghere updated https://github.com/llvm/llvm-project/pull/194760

>From 1f99755d029c74dc0e7e37f58b6dfcf902e0de07 Mon Sep 17 00:00:00 2001
From: Jonas Devlieghere <jonas at devlieghere.com>
Date: Tue, 28 Apr 2026 17:27:49 -0700
Subject: [PATCH 1/2] [lldb] Add a @skipIfNoSignals decorator for Windows and
 Wasm

Add a new @skipIfNoSignals test decorator that skips tests on platforms
that lack signal support: Windows & WASI.
---
 lldb/packages/Python/lldbsuite/test/decorators.py            | 5 +++++
 .../expression/call-restarts/TestCallThatRestarts.py         | 1 +
 .../process/attach/attach_denied/TestAttachDenied.py         | 1 +
 lldb/test/API/functionalities/signal/TestSendSignal.py       | 1 +
 .../functionalities/signal/handle-abrt/TestHandleAbort.py    | 1 +
 .../API/functionalities/signal/handle-segv/TestHandleSegv.py | 2 +-
 lldb/test/API/functionalities/signal/raise/TestRaise.py      | 2 +-
 lldb/test/API/python_api/signals/TestSignalsAPI.py           | 1 +
 lldb/test/API/tools/lldb-dap/exception/TestDAP_exception.py  | 1 +
 9 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py
index 3407965de29b7..2e2bc8f11a336 100644
--- a/lldb/packages/Python/lldbsuite/test/decorators.py
+++ b/lldb/packages/Python/lldbsuite/test/decorators.py
@@ -868,6 +868,11 @@ def skipIfWasm(func):
     return skipIfPlatform(["wasip1", "wasi"])(func)
 
 
+def skipIfNoSignals(func):
+    """Decorate the item to skip tests on platforms without signal support."""
+    return skipIfPlatform(["windows", "wasip1", "wasi"])(func)
+
+
 def skipIfWindows(func=None, windows_version=None):
     """Decorate the item to skip tests that should be skipped on Windows."""
 
diff --git a/lldb/test/API/commands/expression/call-restarts/TestCallThatRestarts.py b/lldb/test/API/commands/expression/call-restarts/TestCallThatRestarts.py
index a108ffe485efc..54b0ba9c191d4 100644
--- a/lldb/test/API/commands/expression/call-restarts/TestCallThatRestarts.py
+++ b/lldb/test/API/commands/expression/call-restarts/TestCallThatRestarts.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfNoSignals
 class ExprCommandThatRestartsTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/commands/process/attach/attach_denied/TestAttachDenied.py b/lldb/test/API/commands/process/attach/attach_denied/TestAttachDenied.py
index d72a710e8127b..2fbd5c710cd27 100644
--- a/lldb/test/API/commands/process/attach/attach_denied/TestAttachDenied.py
+++ b/lldb/test/API/commands/process/attach/attach_denied/TestAttachDenied.py
@@ -12,6 +12,7 @@
 exe_name = "AttachDenied"  # Must match Makefile
 
 
+ at skipIfNoSignals
 class AttachDeniedTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/functionalities/signal/TestSendSignal.py b/lldb/test/API/functionalities/signal/TestSendSignal.py
index 5b6a50a461cdf..d5dd093fc1557 100644
--- a/lldb/test/API/functionalities/signal/TestSendSignal.py
+++ b/lldb/test/API/functionalities/signal/TestSendSignal.py
@@ -7,6 +7,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfNoSignals
 class SendSignalTestCase(TestBase):
     def setUp(self):
         # Call super's setUp().
diff --git a/lldb/test/API/functionalities/signal/handle-abrt/TestHandleAbort.py b/lldb/test/API/functionalities/signal/handle-abrt/TestHandleAbort.py
index 488ae9833c9ee..90366cdad54e9 100644
--- a/lldb/test/API/functionalities/signal/handle-abrt/TestHandleAbort.py
+++ b/lldb/test/API/functionalities/signal/handle-abrt/TestHandleAbort.py
@@ -7,6 +7,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfNoSignals
 class HandleAbortTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/functionalities/signal/handle-segv/TestHandleSegv.py b/lldb/test/API/functionalities/signal/handle-segv/TestHandleSegv.py
index de0d9e392d810..f1f568a8b80a7 100644
--- a/lldb/test/API/functionalities/signal/handle-segv/TestHandleSegv.py
+++ b/lldb/test/API/functionalities/signal/handle-segv/TestHandleSegv.py
@@ -7,8 +7,8 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfNoSignals
 class HandleSegvTestCase(TestBase):
-    @skipIfWindows  # signals do not exist on Windows
     @skipIfDarwin
     @expectedFailureNetBSD
     def test_inferior_handle_sigsegv(self):
diff --git a/lldb/test/API/functionalities/signal/raise/TestRaise.py b/lldb/test/API/functionalities/signal/raise/TestRaise.py
index 9a6f2e6b70f39..cc3544a6121e8 100644
--- a/lldb/test/API/functionalities/signal/raise/TestRaise.py
+++ b/lldb/test/API/functionalities/signal/raise/TestRaise.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
- at skipIfWindows  # signals do not exist on Windows
+ at skipIfNoSignals
 class RaiseTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/python_api/signals/TestSignalsAPI.py b/lldb/test/API/python_api/signals/TestSignalsAPI.py
index 782d96b8b713f..550a0005fbdd1 100644
--- a/lldb/test/API/python_api/signals/TestSignalsAPI.py
+++ b/lldb/test/API/python_api/signals/TestSignalsAPI.py
@@ -10,6 +10,7 @@
 from lldbsuite.test.lldbutil import get_stopped_thread, state_type_to_str
 
 
+ at skipIfNoSignals
 class SignalsAPITestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/tools/lldb-dap/exception/TestDAP_exception.py b/lldb/test/API/tools/lldb-dap/exception/TestDAP_exception.py
index b92c3290ceb4c..ab701204e1808 100644
--- a/lldb/test/API/tools/lldb-dap/exception/TestDAP_exception.py
+++ b/lldb/test/API/tools/lldb-dap/exception/TestDAP_exception.py
@@ -7,6 +7,7 @@
 import lldbdap_testcase
 
 
+ at skipIfNoSignals
 class TestDAP_exception(lldbdap_testcase.DAPTestCaseBase):
     @skipIfWindows
     def test_stopped_description(self):

>From c6b10aa660c584efc6e6ef7c2623807238c1ef14 Mon Sep 17 00:00:00 2001
From: Jonas Devlieghere <jonas at devlieghere.com>
Date: Wed, 29 Apr 2026 10:54:28 -0700
Subject: [PATCH 2/2] Drop redundant skipIfWindows

---
 .../API/functionalities/signal/handle-abrt/TestHandleAbort.py    | 1 -
 lldb/test/API/python_api/signals/TestSignalsAPI.py               | 1 -
 lldb/test/API/tools/lldb-dap/exception/TestDAP_exception.py      | 1 -
 3 files changed, 3 deletions(-)

diff --git a/lldb/test/API/functionalities/signal/handle-abrt/TestHandleAbort.py b/lldb/test/API/functionalities/signal/handle-abrt/TestHandleAbort.py
index 90366cdad54e9..77e760db8ba04 100644
--- a/lldb/test/API/functionalities/signal/handle-abrt/TestHandleAbort.py
+++ b/lldb/test/API/functionalities/signal/handle-abrt/TestHandleAbort.py
@@ -11,7 +11,6 @@
 class HandleAbortTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
-    @skipIfWindows  # signals do not exist on Windows
     @expectedFailureNetBSD
     def test_inferior_handle_sigabrt(self):
         """Inferior calls abort() and handles the resultant SIGABRT.
diff --git a/lldb/test/API/python_api/signals/TestSignalsAPI.py b/lldb/test/API/python_api/signals/TestSignalsAPI.py
index 550a0005fbdd1..4b6c7e4214455 100644
--- a/lldb/test/API/python_api/signals/TestSignalsAPI.py
+++ b/lldb/test/API/python_api/signals/TestSignalsAPI.py
@@ -14,7 +14,6 @@
 class SignalsAPITestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
-    @skipIfWindows  # Windows doesn't have signals
     def test_ignore_signal(self):
         """Test Python SBUnixSignals.Suppress/Stop/Notify() API."""
         self.build()
diff --git a/lldb/test/API/tools/lldb-dap/exception/TestDAP_exception.py b/lldb/test/API/tools/lldb-dap/exception/TestDAP_exception.py
index ab701204e1808..15b8956995432 100644
--- a/lldb/test/API/tools/lldb-dap/exception/TestDAP_exception.py
+++ b/lldb/test/API/tools/lldb-dap/exception/TestDAP_exception.py
@@ -9,7 +9,6 @@
 
 @skipIfNoSignals
 class TestDAP_exception(lldbdap_testcase.DAPTestCaseBase):
-    @skipIfWindows
     def test_stopped_description(self):
         """
         Test that exception description is shown correctly in stopped



More information about the lldb-commits mailing list