[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