https://github.com/da-viper updated 
https://github.com/llvm/llvm-project/pull/214701

>From 4e398ee02da6140ac9cc701039e11ea2a720cba4 Mon Sep 17 00:00:00 2001
From: Ebuka Ezike <[email protected]>
Date: Fri, 7 Aug 2026 11:39:31 +0100
Subject: [PATCH 1/4] [lldb] Add a reason for all requireNot* decorators.

Previously, tests using the @requireNot* decorators documented by
the test was skipped using a trailing comment that never made it
into the test report.

Change the decorator to take a required `reason` parameter. as
the test should have a reason why it is not required.

fix the build issue
---
 .../Python/lldbsuite/test/decorators.py       | 34 +++++++++++--------
 .../API/driver/batch_mode/TestBatchMode.py    |  2 +-
 lldb/test/API/macosx/mte/TestDarwinMTE.py     |  2 +-
 .../TestExprPathRegisters.py                  |  2 +-
 .../TestGlobalModuleCache.py                  |  2 +-
 .../python_api/hello_world/TestHelloWorld.py  |  4 +--
 .../process/address-masks/TestAddressMasks.py |  2 +-
 .../read-mem-cstring/TestReadMemCString.py    |  2 +-
 .../sbenvironment/TestSBEnvironment.py        |  2 +-
 .../python_api/sbplatform/TestSBPlatform.py   |  2 +-
 lldb/test/API/qemu/TestQemuLaunch.py          |  2 +-
 .../lldb-server/TestGdbRemoteAuxvSupport.py   | 10 +++---
 .../tools/lldb-server/TestLldbGdbServer.py    |  2 +-
 .../test/API/tools/lldb-server/TestNonStop.py |  2 +-
 .../inferior-crash/TestGdbRemoteAbort.py      |  2 +-
 .../inferior-crash/TestGdbRemoteSegFault.py   |  2 +-
 .../TestGdbRemote_QPassSignals.py             |  2 +-
 .../lldb-server/vCont-threads/TestSignal.py   | 16 ++++-----
 18 files changed, 48 insertions(+), 44 deletions(-)

diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py 
b/lldb/packages/Python/lldbsuite/test/decorators.py
index 840e4f1797720..83875a41dc42e 100644
--- a/lldb/packages/Python/lldbsuite/test/decorators.py
+++ b/lldb/packages/Python/lldbsuite/test/decorators.py
@@ -5,6 +5,7 @@
 
 from collections.abc import Callable
 from functools import wraps
+from typing import Optional
 from packaging import version
 import contextlib
 import ctypes
@@ -1165,16 +1166,19 @@ def requirePlatform(oslist):
     )
 
 
-def requireNotPlatform(oslist):
+def requireNotPlatform(oslist: list[str], reason: Optional[str] = None):
     """Mark the item as inherently inapplicable to the listed target platforms.
 
     Unlike `skipIfPlatform`, the listed platforms are reported as UNSUPPORTED
     rather than SKIPPED.
     """
-    return unittest.skipIf(
-        lldbplatformutil.getPlatform() in oslist,
-        UnsupportedReason("unsupported on %s" % (", ".join(oslist))),
-    )
+    assert isinstance(
+        reason, (str, type(None))
+    ), f"expects 'str' or 'None' got {type(reason).__name__!r}"
+
+    skip_reason = reason or UnsupportedReason(f"unsupported on {', 
'.join(oslist)}")
+
+    return unittest.skipIf(lldbplatformutil.getPlatform() in oslist, 
skip_reason)
 
 
 def requireDarwin(func):
@@ -1183,9 +1187,9 @@ def requireDarwin(func):
     return 
requirePlatform(lldbplatform.translate(lldbplatform.darwin_all))(func)
 
 
-def requireNotDarwin(func):
+def requireNotDarwin(reason: str):
     """Mark the item as inherently inapplicable to Darwin targets."""
-    return 
requireNotPlatform(lldbplatform.translate(lldbplatform.darwin_all))(func)
+    return requireNotPlatform(lldbplatform.translate(lldbplatform.darwin_all), 
reason=reason)
 
 
 def requireLinux(func):
@@ -1194,9 +1198,9 @@ def requireLinux(func):
     return requirePlatform(["linux"])(func)
 
 
-def requireNotLinux(func):
+def requireNotLinux(reason: str):
     """Mark the item as inherently inapplicable to Linux targets."""
-    return requireNotPlatform(["linux"])(func)
+    return requireNotPlatform(["linux"], reason=reason)
 
 
 def requireWindows(func):
@@ -1205,13 +1209,13 @@ def requireWindows(func):
     return requirePlatform(["windows"])(func)
 
 
-def requireNotWindows(func):
+def requireNotWindows(reason: str):
     """Mark the item as inherently inapplicable to Windows targets.
 
     Use this for tests built on POSIX-only concepts: fork/exec semantics,
     POSIX signals, ptrace, ELF/Mach-O specifics, shell pipelines, and so on.
     """
-    return requireNotPlatform(["windows"])(func)
+    return requireNotPlatform(["windows"], reason=reason)
 
 
 def requirePOSIX(func):
@@ -1221,7 +1225,7 @@ def requirePOSIX(func):
     dependency is POSIX semantics generally rather than anything about
     Windows specifically.
     """
-    return requireNotPlatform(["windows"])(func)
+    return requireNotPlatform(["windows"], reason="uses the posix API.")(func)
 
 
 def requireSignals(func):
@@ -1231,17 +1235,17 @@ def requireSignals(func):
 
 def requireExpressionEvaluation(func):
     """Mark the item as requiring expression evaluation."""
-    return requireNotWasm(func)
+    return requireNotWasm(reason="needs expression evaluation support")(func)
 
 
-def requireNotWasm(func):
+def requireNotWasm(reason: str):
     """Mark the item as inherently inapplicable to WebAssembly targets.
 
     WebAssembly has no processes, no signals, no shared libraries and no
     ptrace-style debugging, so a large amount of the test suite can never
     apply to it.
     """
-    return requireNotPlatform(["wasip1", "wasi"])(func)
+    return requireNotPlatform(["wasip1", "wasi"], reason=reason)
 
 
 def requireHostPlatform(oslist):
diff --git a/lldb/test/API/driver/batch_mode/TestBatchMode.py 
b/lldb/test/API/driver/batch_mode/TestBatchMode.py
index 38b0871178395..f0998a7b56dbd 100644
--- a/lldb/test/API/driver/batch_mode/TestBatchMode.py
+++ b/lldb/test/API/driver/batch_mode/TestBatchMode.py
@@ -11,7 +11,7 @@
 from lldbsuite.test.lldbpexpect import PExpectTest
 
 
-@requireNotWasm  # driver cannot launch a Wasm inferior
+@requireNotWasm("driver cannot launch a Wasm inferior")
 class DriverBatchModeTest(PExpectTest):
     source = "main.c"
 
diff --git a/lldb/test/API/macosx/mte/TestDarwinMTE.py 
b/lldb/test/API/macosx/mte/TestDarwinMTE.py
index 812d563b88f5c..df627809385c8 100644
--- a/lldb/test/API/macosx/mte/TestDarwinMTE.py
+++ b/lldb/test/API/macosx/mte/TestDarwinMTE.py
@@ -11,7 +11,7 @@
 exe_name = "uaf"  # Must match Makefile
 
 
-@requireNotWasm  # memory tagging is a Darwin AArch64 feature
+@requireNotWasm("memory tagging is a Darwin AArch64 feature")
 class TestDarwinMTE(TestBase):
     SHARED_BUILD_TESTCASE = False
     NO_DEBUG_INFO_TESTCASE = True
diff --git 
a/lldb/test/API/python_api/exprpath_register/TestExprPathRegisters.py 
b/lldb/test/API/python_api/exprpath_register/TestExprPathRegisters.py
index 8cb6851516b3f..aa06f701b560d 100644
--- a/lldb/test/API/python_api/exprpath_register/TestExprPathRegisters.py
+++ b/lldb/test/API/python_api/exprpath_register/TestExprPathRegisters.py
@@ -50,7 +50,7 @@ def test_float_registers(self):
             if reg_value:
                 self.verify_register_path(reg_value)
 
-    @requireNotWasm  # wasm exposes no registers
+    @requireNotWasm("wasm exposes no registers")
     def test_all_registers(self):
         """Test all the registers that is avaiable on the machine"""
         self.build()
diff --git 
a/lldb/test/API/python_api/global_module_cache/TestGlobalModuleCache.py 
b/lldb/test/API/python_api/global_module_cache/TestGlobalModuleCache.py
index a39d6fe191315..10bf7a3d2821d 100644
--- a/lldb/test/API/python_api/global_module_cache/TestGlobalModuleCache.py
+++ b/lldb/test/API/python_api/global_module_cache/TestGlobalModuleCache.py
@@ -12,7 +12,7 @@
 import time
 
 
-@requireNotWasm  # modules carry no build ID to cache on
+@requireNotWasm("modules carry no build ID to cache on")
 class GlobalModuleCacheTestCase(TestBase):
     SHARED_BUILD_TESTCASE = False
     # NO_DEBUG_INFO_TESTCASE = True
diff --git a/lldb/test/API/python_api/hello_world/TestHelloWorld.py 
b/lldb/test/API/python_api/hello_world/TestHelloWorld.py
index 888f0d8a04b45..8935ec2fdd447 100644
--- a/lldb/test/API/python_api/hello_world/TestHelloWorld.py
+++ b/lldb/test/API/python_api/hello_world/TestHelloWorld.py
@@ -72,7 +72,7 @@ def test_with_process_launch_api(self):
 
     @expectedFailureAll(oslist=["windows"], archs=["aarch64"])
     @skipIfiOSSimulator
-    @requireNotWasm  # attaching requires launching the inferior as a host 
process
+    @requireNotWasm("attaching requires launching the inferior as a host 
process")
     def test_with_attach_to_process_with_id_api(self):
         """Create target, spawn a process, and attach to it with process id."""
         exe = "%s_%d" % (self.testMethodName, os.getpid())
@@ -105,7 +105,7 @@ def test_with_attach_to_process_with_id_api(self):
     @expectedFailureAll(oslist=["windows"], archs=["aarch64"])
     @skipIfiOSSimulator
     @skipIfAsan  # FIXME: Hangs indefinitely.
-    @requireNotWasm  # attaching requires launching the inferior as a host 
process
+    @requireNotWasm("attaching requires launching the inferior as a host 
process")
     def test_with_attach_to_process_with_name_api(self):
         """Create target, spawn a process, and attach to it with process 
name."""
         exe = "%s_%d" % (self.testMethodName, os.getpid())
diff --git a/lldb/test/API/python_api/process/address-masks/TestAddressMasks.py 
b/lldb/test/API/python_api/process/address-masks/TestAddressMasks.py
index 866972de5520d..83a2e294b0542 100644
--- a/lldb/test/API/python_api/process/address-masks/TestAddressMasks.py
+++ b/lldb/test/API/python_api/process/address-masks/TestAddressMasks.py
@@ -7,7 +7,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # no ABI plugin, so address masks are never applied
+@requireNotWasm("no ABI plugin, so address masks are never applied")
 class AddressMasksTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/python_api/process/read-mem-cstring/TestReadMemCString.py 
b/lldb/test/API/python_api/process/read-mem-cstring/TestReadMemCString.py
index 0373c225a60e8..5f094b036b32c 100644
--- a/lldb/test/API/python_api/process/read-mem-cstring/TestReadMemCString.py
+++ b/lldb/test/API/python_api/process/read-mem-cstring/TestReadMemCString.py
@@ -11,7 +11,7 @@
 class TestReadMemCString(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
-    @requireNotWasm  # linear memory has no unmapped pages, so a bad in-range 
pointer still reads
+    @requireNotWasm("linear memory has no unmapped pages, so a bad in-range 
pointer still reads")
     def test_read_memory_c_string(self):
         """Test corner case behavior of SBProcess::ReadCStringFromMemory"""
         self.build()
diff --git a/lldb/test/API/python_api/sbenvironment/TestSBEnvironment.py 
b/lldb/test/API/python_api/sbenvironment/TestSBEnvironment.py
index f78b7a681bd68..621abe2b8af1b 100644
--- a/lldb/test/API/python_api/sbenvironment/TestSBEnvironment.py
+++ b/lldb/test/API/python_api/sbenvironment/TestSBEnvironment.py
@@ -8,7 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # no remote environment support
+@requireNotWasm("no remote environment support")
 class SBEnvironmentAPICase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/python_api/sbplatform/TestSBPlatform.py 
b/lldb/test/API/python_api/sbplatform/TestSBPlatform.py
index 2a78f0106e18c..c98178b59dec0 100644
--- a/lldb/test/API/python_api/sbplatform/TestSBPlatform.py
+++ b/lldb/test/API/python_api/sbplatform/TestSBPlatform.py
@@ -10,7 +10,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # no remote platform file/process APIs
+@requireNotWasm("no remote platform file/process APIs")
 class SBPlatformAPICase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/qemu/TestQemuLaunch.py 
b/lldb/test/API/qemu/TestQemuLaunch.py
index ecdb16afc2c12..0967f3c214cb6 100644
--- a/lldb/test/API/qemu/TestQemuLaunch.py
+++ b/lldb/test/API/qemu/TestQemuLaunch.py
@@ -14,7 +14,7 @@
 @skipIfRemote
 @skipIfWindows
 @skipIf(archs=["arm64e"])
-@requireNotWasm  # no qemu-wasm32
+@requireNotWasm("no qemu-wasm32")
 class TestQemuLaunch(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/tools/lldb-server/TestGdbRemoteAuxvSupport.py 
b/lldb/test/API/tools/lldb-server/TestGdbRemoteAuxvSupport.py
index 43eac3ed2fb93..e3981b214c95a 100644
--- a/lldb/test/API/tools/lldb-server/TestGdbRemoteAuxvSupport.py
+++ b/lldb/test/API/tools/lldb-server/TestGdbRemoteAuxvSupport.py
@@ -69,14 +69,14 @@ def get_raw_auxv_data(self):
         self.assertIsNotNone(content_raw)
         return (word_size, self.decode_gdbremote_binary(content_raw))
 
-    @requireNotWindows  # no auxv support.
-    @requireNotDarwin
+    @requireNotWindows("no auxv support.")
+    @requireNotDarwin("no auxv support.")
     def test_supports_auxv(self):
         self.build()
         self.set_inferior_startup_launch()
         self.assertTrue(self.has_auxv_support())
 
-    @requireNotWindows
+    @requireNotWindows("no auxv support.")
     @expectedFailureNetBSD
     def test_auxv_data_is_correct_size(self):
         self.build()
@@ -90,7 +90,7 @@ def test_auxv_data_is_correct_size(self):
         self.assertEqual(len(auxv_data) % (2 * word_size), 0)
         self.trace("auxv contains {} entries".format(len(auxv_data) / (2 * 
word_size)))
 
-    @requireNotWindows
+    @requireNotWindows("no auxv support.")
     @expectedFailureNetBSD
     def test_auxv_keys_look_valid(self):
         self.build()
@@ -120,7 +120,7 @@ def test_auxv_keys_look_valid(self):
             self.assertGreaterEqual(auxv_key, 1)
             self.assertLessEqual(auxv_key, 2500)
 
-    @requireNotWindows
+    @requireNotWindows("no auxv support.")
     @expectedFailureNetBSD
     def test_auxv_chunked_reads_work(self):
         self.build()
diff --git a/lldb/test/API/tools/lldb-server/TestLldbGdbServer.py 
b/lldb/test/API/tools/lldb-server/TestLldbGdbServer.py
index 3fe21cd9d53a9..921dff7f0a0a8 100644
--- a/lldb/test/API/tools/lldb-server/TestLldbGdbServer.py
+++ b/lldb/test/API/tools/lldb-server/TestLldbGdbServer.py
@@ -479,7 +479,7 @@ def Hc_then_Csignal_signals_correct_thread(self, 
segfault_signo):
             self.assertEqual(post_handle_thread_id, print_thread_id)
 
     @expectedFailureDarwin
-    @requireNotWindows  # no SIGSEGV support
+    @requireSignals
     @expectedFailureNetBSD
     def test_Hc_then_Csignal_signals_correct_thread_launch(self):
         self.build()
diff --git a/lldb/test/API/tools/lldb-server/TestNonStop.py 
b/lldb/test/API/tools/lldb-server/TestNonStop.py
index 71314195ac7f6..6f7dbd11982d7 100644
--- a/lldb/test/API/tools/lldb-server/TestNonStop.py
+++ b/lldb/test/API/tools/lldb-server/TestNonStop.py
@@ -5,7 +5,7 @@
 
 
 class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
-    @requireNotWindows  # no SIGSEGV support
+    @requireSignals
     @add_test_categories(["llgs"])
     def test_run(self):
         self.build()
diff --git 
a/lldb/test/API/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py 
b/lldb/test/API/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py
index 9997365f6d738..834da35b9da4e 100644
--- a/lldb/test/API/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py
+++ b/lldb/test/API/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py
@@ -5,7 +5,7 @@
 
 
 class TestGdbRemoteAbort(gdbremote_testcase.GdbRemoteTestCaseBase):
-    @requireNotWindows  # No signal is sent on Windows.
+    @requireSignals
     # std::abort() on <= API 16 raises SIGSEGV - b.android.com/179836
     @expectedFailureAndroid(api_levels=list(range(16 + 1)))
     def test_inferior_abort_received_llgs(self):
diff --git 
a/lldb/test/API/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py 
b/lldb/test/API/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py
index be157c6f81e53..bf66e2128f3c0 100644
--- a/lldb/test/API/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py
+++ b/lldb/test/API/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py
@@ -30,7 +30,7 @@ def inferior_seg_fault_received(self, expected_signo):
         self.assertIsNotNone(hex_exit_code)
         self.assertEqual(int(hex_exit_code, 16), expected_signo)
 
-    @requireNotWindows  # No signal is sent on Windows.
+    @requireSignals
     def test_inferior_seg_fault_received(self):
         self.build()
         if self.platformIsDarwin():
diff --git 
a/lldb/test/API/tools/lldb-server/signal-filtering/TestGdbRemote_QPassSignals.py
 
b/lldb/test/API/tools/lldb-server/signal-filtering/TestGdbRemote_QPassSignals.py
index f1016a035cf43..2a2ee8d186a04 100644
--- 
a/lldb/test/API/tools/lldb-server/signal-filtering/TestGdbRemote_QPassSignals.py
+++ 
b/lldb/test/API/tools/lldb-server/signal-filtering/TestGdbRemote_QPassSignals.py
@@ -87,7 +87,7 @@ def test_change_signals_at_runtime(self):
                 self.ignore_signals(signals_to_ignore)
         self.expect_exit_code(len(signals_to_ignore))
 
-    @requireNotWindows  # no signal support
+    @requireSignals
     @expectedFailureNetBSD
     def test_default_signals_behavior(self):
         self.build()
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..c39efaad4a42f 100644
--- a/lldb/test/API/tools/lldb-server/vCont-threads/TestSignal.py
+++ b/lldb/test/API/tools/lldb-server/vCont-threads/TestSignal.py
@@ -54,7 +54,7 @@ def get_pid(self):
         procinfo = self.parse_process_info_response(context)
         return int(procinfo["pid"], 16)
 
-    @requireNotWindows
+    @requireSignals
     @skipIfDarwin
     @expectedFailureNetBSD
     @expectedFailureAll(
@@ -85,7 +85,7 @@ def test_signal_one_thread(self):
             "C{0:x}:{1:x};c".format(lldbutil.get_signal_number("SIGUSR1")), 
threads[:1]
         )
 
-    @requireNotWindows
+    @requireSignals
     @skipIfDarwin
     @expectedFailureNetBSD
     @expectedFailureAll(
@@ -106,7 +106,7 @@ def test_signal_all_threads(self):
             threads,
         )
 
-    @requireNotWindows
+    @requireSignals
     @expectedFailureNetBSD
     @expectedFailureAll(
         oslist=["freebsd"], 
bugnumber="github.com/llvm/llvm-project/issues/56086"
@@ -126,7 +126,7 @@ def test_signal_process_by_pid(self):
             threads,
         )
 
-    @requireNotWindows
+    @requireSignals
     @expectedFailureNetBSD
     @expectedFailureAll(
         oslist=["freebsd"], 
bugnumber="github.com/llvm/llvm-project/issues/56086"
@@ -143,7 +143,7 @@ def test_signal_process_minus_one(self):
             "C{0:x}:p-1".format(lldbutil.get_signal_number("SIGUSR1")), threads
         )
 
-    @requireNotWindows
+    @requireSignals
     @expectedFailureNetBSD
     @expectedFailureAll(
         oslist=["freebsd"], 
bugnumber="github.com/llvm/llvm-project/issues/56086"
@@ -159,7 +159,7 @@ def test_signal_minus_one(self):
             "C{0:x}:-1".format(lldbutil.get_signal_number("SIGUSR1")), threads
         )
 
-    @requireNotWindows
+    @requireSignals
     @expectedFailureNetBSD
     @expectedFailureAll(
         oslist=["freebsd"], 
bugnumber="github.com/llvm/llvm-project/issues/56086"
@@ -180,7 +180,7 @@ def test_signal_all_threads_by_pid(self):
             threads,
         )
 
-    @requireNotWindows
+    @requireSignals
     @expectedFailureNetBSD
     @expectedFailureAll(
         oslist=["freebsd"], 
bugnumber="github.com/llvm/llvm-project/issues/56086"
@@ -200,7 +200,7 @@ def test_signal_minus_one_by_pid(self):
             threads,
         )
 
-    @requireNotWindows
+    @requireSignals
     @expectedFailureNetBSD
     @expectedFailureAll(
         oslist=["freebsd"], 
bugnumber="github.com/llvm/llvm-project/issues/56086"

>From 97d0b45e88c70085773b1142326329e4830c27ef Mon Sep 17 00:00:00 2001
From: Ebuka Ezike <[email protected]>
Date: Fri, 7 Aug 2026 12:19:22 +0100
Subject: [PATCH 2/4] fix format

---
 lldb/packages/Python/lldbsuite/test/decorators.py           | 6 ++++--
 .../process/read-mem-cstring/TestReadMemCString.py          | 4 +++-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py 
b/lldb/packages/Python/lldbsuite/test/decorators.py
index 83875a41dc42e..f3e21c4b604bd 100644
--- a/lldb/packages/Python/lldbsuite/test/decorators.py
+++ b/lldb/packages/Python/lldbsuite/test/decorators.py
@@ -1166,7 +1166,7 @@ def requirePlatform(oslist):
     )
 
 
-def requireNotPlatform(oslist: list[str], reason: Optional[str] = None):
+def requireNotPlatform(oslist: list, reason: Optional[str] = None):
     """Mark the item as inherently inapplicable to the listed target platforms.
 
     Unlike `skipIfPlatform`, the listed platforms are reported as UNSUPPORTED
@@ -1189,7 +1189,9 @@ def requireDarwin(func):
 
 def requireNotDarwin(reason: str):
     """Mark the item as inherently inapplicable to Darwin targets."""
-    return requireNotPlatform(lldbplatform.translate(lldbplatform.darwin_all), 
reason=reason)
+    return requireNotPlatform(
+        lldbplatform.translate(lldbplatform.darwin_all), reason=reason
+    )
 
 
 def requireLinux(func):
diff --git 
a/lldb/test/API/python_api/process/read-mem-cstring/TestReadMemCString.py 
b/lldb/test/API/python_api/process/read-mem-cstring/TestReadMemCString.py
index 5f094b036b32c..27465d3791dd8 100644
--- a/lldb/test/API/python_api/process/read-mem-cstring/TestReadMemCString.py
+++ b/lldb/test/API/python_api/process/read-mem-cstring/TestReadMemCString.py
@@ -11,7 +11,9 @@
 class TestReadMemCString(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
-    @requireNotWasm("linear memory has no unmapped pages, so a bad in-range 
pointer still reads")
+    @requireNotWasm(
+        "linear memory has no unmapped pages, so a bad in-range pointer still 
reads"
+    )
     def test_read_memory_c_string(self):
         """Test corner case behavior of SBProcess::ReadCStringFromMemory"""
         self.build()

>From ec2cf9a7205d1fae38ab2499269d5d80e651b1a1 Mon Sep 17 00:00:00 2001
From: Ebuka Ezike <[email protected]>
Date: Tue, 11 Aug 2026 22:37:33 +0100
Subject: [PATCH 3/4] add review changes

---
 lldb/packages/Python/lldbsuite/test/decorators.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py 
b/lldb/packages/Python/lldbsuite/test/decorators.py
index f3e21c4b604bd..14c6a0fe16dbe 100644
--- a/lldb/packages/Python/lldbsuite/test/decorators.py
+++ b/lldb/packages/Python/lldbsuite/test/decorators.py
@@ -1176,9 +1176,13 @@ def requireNotPlatform(oslist: list, reason: 
Optional[str] = None):
         reason, (str, type(None))
     ), f"expects 'str' or 'None' got {type(reason).__name__!r}"
 
-    skip_reason = reason or UnsupportedReason(f"unsupported on {', 
'.join(oslist)}")
+    skip_reason = f"unsupported on {', '.join(oslist)}"
+    if reason:
+        skip_reason += f": {reason}"
 
-    return unittest.skipIf(lldbplatformutil.getPlatform() in oslist, 
skip_reason)
+    return unittest.skipIf(
+        lldbplatformutil.getPlatform() in oslist, 
UnsupportedReason(skip_reason)
+    )
 
 
 def requireDarwin(func):

>From 453d554d751eb86eb4be24e5df8661e3564522d1 Mon Sep 17 00:00:00 2001
From: Ebuka Ezike <[email protected]>
Date: Wed, 12 Aug 2026 00:11:56 +0100
Subject: [PATCH 4/4] [lldb] rebase changes

---
 .../expression/call-restarts/TestCallThatRestarts.py       | 2 +-
 .../API/commands/frame/recognizer/TestFrameRecognizer.py   | 2 +-
 .../test/API/commands/platform/basic/TestPlatformPython.py | 2 +-
 .../API/commands/platform/connect/TestPlatformConnect.py   | 2 +-
 .../launchgdbserver/TestPlatformLaunchGDBServer.py         | 2 +-
 .../API/commands/platform/process/list/TestProcessList.py  | 2 +-
 lldb/test/API/commands/process/attach/TestProcessAttach.py | 2 +-
 lldb/test/API/commands/process/handle/TestProcessHandle.py | 2 +-
 .../launch-with-shellexpand/TestLaunchWithShellExpand.py   | 2 +-
 .../process/reverse-continue/TestReverseContinue.py        | 2 +-
 .../commands/register/register_command/TestRegisters.py    | 2 +-
 .../TestAutoInstallMainExecutable.py                       | 2 +-
 .../after_rebuild/TestLocationsAfterRebuild.py             | 6 ++++--
 .../breakpoint/cpp/TestCPPBreakpointLocations.py           | 7 ++++---
 .../breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py | 2 +-
 .../delayed_breakpoints/TestDelayedBreakpoint.py           | 2 +-
 .../require_hw_breakpoints/TestRequireHWBreakpoints.py     | 2 +-
 .../simple_hw_breakpoints/TestSimpleHWBreakpoints.py       | 2 +-
 .../builtin-debugtrap/TestBuiltinDebugTrap.py              | 7 ++++---
 lldb/test/API/functionalities/completion/TestCompletion.py | 7 ++++---
 .../deleted-executable/TestDeletedExecutable.py            | 4 ++--
 lldb/test/API/functionalities/exec/TestExec.py             | 2 +-
 .../fork/resumes-child/TestForkResumesChild.py             | 2 +-
 .../gdb_remote_client/TestDynamicLoaderDarwin.py           | 2 +-
 .../functionalities/gdb_remote_client/TestPlatformKill.py  | 2 +-
 .../inferior-changed/TestInferiorChanged.py                | 2 +-
 .../inferior-crashing/TestInferiorCrashing.py              | 2 +-
 .../inferior-crashing/TestInferiorCrashingStep.py          | 2 +-
 .../recursive-inferior/TestRecursiveInferior.py            | 2 +-
 .../recursive-inferior/TestRecursiveInferiorStep.py        | 2 +-
 lldb/test/API/functionalities/longjmp/TestLongjmp.py       | 2 +-
 .../API/functionalities/memory/holes/TestMemoryHoles.py    | 2 +-
 .../module_cache/simple_exe/TestModuleCacheSimple.py       | 2 +-
 .../process_group/TestChangeProcessGroup.py                | 2 +-
 .../API/functionalities/return-value/TestReturnValue.py    | 2 +-
 .../reverse-execution/TestReverseContinueBreakpoints.py    | 2 +-
 .../reverse-execution/TestReverseContinueWatchpoints.py    | 2 +-
 .../scripted_frame_provider/TestScriptedFrameProvider.py   | 3 ++-
 .../thread_filter/TestFrameProviderThreadFilter.py         | 2 +-
 lldb/test/API/functionalities/signal/raise/TestRaise.py    | 2 +-
 .../ambiguous_tail_call_seq1/TestAmbiguousTailCallSeq1.py  | 2 +-
 .../ambiguous_tail_call_seq2/TestAmbiguousTailCallSeq2.py  | 2 +-
 .../cross_object/TestCrossObjectTailCalls.py               | 2 +-
 .../disambiguate_call_site/TestDisambiguateCallSite.py     | 2 +-
 .../TestDisambiguatePathsToCommonSink.py                   | 2 +-
 .../TestDisambiguateTailCallSeq.py                         | 2 +-
 .../inlining_and_tail_calls/TestInliningAndTailCalls.py    | 2 +-
 .../sbapi_support/TestTailCallFrameSBAPI.py                | 2 +-
 .../TestArtificialFrameStepOutMessage.py                   | 2 +-
 .../TestSteppingOutWithArtificialFrames.py                 | 2 +-
 .../unambiguous_sequence/TestUnambiguousTailCalls.py       | 2 +-
 .../API/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py | 2 +-
 .../TestCppFloatingTypesSpecialization.py                  | 2 +-
 lldb/test/API/lang/cpp/llvm-style/TestLLVMStyle.py         | 2 +-
 .../lang/cpp/namespace_conflicts/TestNamespaceConflicts.py | 2 +-
 lldb/test/API/lang/cpp/operators/TestCppOperators.py       | 2 +-
 .../TestPointerToMemberTypeDependingOnParentSize.py        | 7 ++++---
 lldb/test/API/lang/cpp/printf/TestPrintf.py                | 2 +-
 lldb/test/API/lang/cpp/symbols/TestSymbols.py              | 2 +-
 lldb/test/API/lang/cpp/thread_local/TestThreadLocal.py     | 2 +-
 lldb/test/API/lang/cpp/trivial_abi/TestTrivialABI.py       | 2 +-
 lldb/test/API/tools/lldb-dap/attach/TestDAP_attach.py      | 2 +-
 lldb/test/API/tools/lldb-dap/console/TestDAP_console.py    | 4 ++--
 .../lldb-dap/databreakpoint/TestDAP_setDataBreakpoints.py  | 2 +-
 .../API/tools/lldb-dap/disconnect/TestDAP_disconnect.py    | 2 +-
 65 files changed, 83 insertions(+), 76 deletions(-)

diff --git 
a/lldb/test/API/commands/expression/call-restarts/TestCallThatRestarts.py 
b/lldb/test/API/commands/expression/call-restarts/TestCallThatRestarts.py
index 2597d310c59d1..0b62acc4e78c1 100644
--- a/lldb/test/API/commands/expression/call-restarts/TestCallThatRestarts.py
+++ b/lldb/test/API/commands/expression/call-restarts/TestCallThatRestarts.py
@@ -21,7 +21,7 @@ def setUp(self):
         self.main_source_spec = lldb.SBFileSpec(self.main_source)
 
     @skipIfDarwin  # llvm.org/pr19246: intermittent failure
-    @requireNotWindows  # Test relies on signals, unsupported on Windows
+    @requireNotWindows("Test relies on signals, unsupported on Windows")
     @expectedFlakeyAndroid(bugnumber="llvm.org/pr19246")
     @expectedFlakeyNetBSD
     def test(self):
diff --git a/lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py 
b/lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py
index caa4bbba49540..53060df59fd1e 100644
--- a/lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py
+++ b/lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py
@@ -374,7 +374,7 @@ def test_frame_recognizer_target_specific(self):
             substrs=["frame 0 is recognized by recognizer.MyFrameRecognizer"],
         )
 
-    @requireNotWasm  # $arg1/$arg2 need argument registers, unsupported on 
WebAssembly.
+    @requireNotWasm("$arg1/$arg2 need argument registers, unsupported on 
WebAssembly.")
     def test_frame_recognizer_not_only_first_instruction(self):
         self.build()
         exe = self.getBuildArtifact("a.out")
diff --git a/lldb/test/API/commands/platform/basic/TestPlatformPython.py 
b/lldb/test/API/commands/platform/basic/TestPlatformPython.py
index 24a95211597a9..927c2c773db5f 100644
--- a/lldb/test/API/commands/platform/basic/TestPlatformPython.py
+++ b/lldb/test/API/commands/platform/basic/TestPlatformPython.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # platform shell needs a connected remote
+@requireNotWasm("platform shell needs a connected remote")
 class PlatformPythonTestCase(TestBase):
     @add_test_categories(["pyapi"])
     @no_debug_info_test
diff --git a/lldb/test/API/commands/platform/connect/TestPlatformConnect.py 
b/lldb/test/API/commands/platform/connect/TestPlatformConnect.py
index 2b1f62824d714..3eee8d2cc15a0 100644
--- a/lldb/test/API/commands/platform/connect/TestPlatformConnect.py
+++ b/lldb/test/API/commands/platform/connect/TestPlatformConnect.py
@@ -5,7 +5,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # no remote platform to connect to
+@requireNotWasm("no remote platform to connect to")
 class TestPlatformProcessConnect(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
     SHARED_BUILD_TESTCASE = False
diff --git 
a/lldb/test/API/commands/platform/launchgdbserver/TestPlatformLaunchGDBServer.py
 
b/lldb/test/API/commands/platform/launchgdbserver/TestPlatformLaunchGDBServer.py
index 150c22f8b6070..18e9ab79394e3 100644
--- 
a/lldb/test/API/commands/platform/launchgdbserver/TestPlatformLaunchGDBServer.py
+++ 
b/lldb/test/API/commands/platform/launchgdbserver/TestPlatformLaunchGDBServer.py
@@ -6,7 +6,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # cannot launch a gdbserver
+@requireNotWasm("cannot launch a gdbserver")
 class TestPlatformProcessLaunchGDBServer(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
     SHARED_BUILD_TESTCASE = False
diff --git a/lldb/test/API/commands/platform/process/list/TestProcessList.py 
b/lldb/test/API/commands/platform/process/list/TestProcessList.py
index af21f1e348346..625035ef455ef 100644
--- a/lldb/test/API/commands/platform/process/list/TestProcessList.py
+++ b/lldb/test/API/commands/platform/process/list/TestProcessList.py
@@ -11,7 +11,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # attaching requires launching the inferior as a host process
+@requireNotWasm("attaching requires launching the inferior as a host process")
 class ProcessListTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/commands/process/attach/TestProcessAttach.py 
b/lldb/test/API/commands/process/attach/TestProcessAttach.py
index 5be6a3f6cf077..e658a0ad34341 100644
--- a/lldb/test/API/commands/process/attach/TestProcessAttach.py
+++ b/lldb/test/API/commands/process/attach/TestProcessAttach.py
@@ -13,7 +13,7 @@
 exe_name = "ProcessAttach"  # Must match Makefile
 
 
-@requireNotWasm  # attaching requires launching the inferior as a host process
+@requireNotWasm("attaching requires launching the inferior as a host process")
 class ProcessAttachTestCase(TestBase):
     SHARED_BUILD_TESTCASE = False
     NO_DEBUG_INFO_TESTCASE = True
diff --git a/lldb/test/API/commands/process/handle/TestProcessHandle.py 
b/lldb/test/API/commands/process/handle/TestProcessHandle.py
index 87d2cc9ed1f0a..f6f39a9d28690 100644
--- a/lldb/test/API/commands/process/handle/TestProcessHandle.py
+++ b/lldb/test/API/commands/process/handle/TestProcessHandle.py
@@ -6,7 +6,7 @@
 
 class TestProcessHandle(TestBase):
     @no_debug_info_test
-    @requireNotWindows
+    @requireSignals
     def test_process_handle(self):
         """Test that calling process handle before we have a target, and 
before we
         have a process will affect the process.  Also that the signal settings
diff --git 
a/lldb/test/API/commands/process/launch-with-shellexpand/TestLaunchWithShellExpand.py
 
b/lldb/test/API/commands/process/launch-with-shellexpand/TestLaunchWithShellExpand.py
index 750970d3275c3..2112d996d0173 100644
--- 
a/lldb/test/API/commands/process/launch-with-shellexpand/TestLaunchWithShellExpand.py
+++ 
b/lldb/test/API/commands/process/launch-with-shellexpand/TestLaunchWithShellExpand.py
@@ -10,7 +10,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # no host shell to expand arguments
+@requireNotWasm("no host shell to expand arguments")
 class LaunchWithShellExpandTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/commands/process/reverse-continue/TestReverseContinue.py 
b/lldb/test/API/commands/process/reverse-continue/TestReverseContinue.py
index 0bd8b99205d6d..21aa1c087816e 100644
--- a/lldb/test/API/commands/process/reverse-continue/TestReverseContinue.py
+++ b/lldb/test/API/commands/process/reverse-continue/TestReverseContinue.py
@@ -11,7 +11,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # no reverse execution
+@requireNotWasm("no reverse execution")
 class TestReverseContinue(ReverseTestBase):
     @skipIfRemote
     def test_reverse_continue(self):
diff --git a/lldb/test/API/commands/register/register_command/TestRegisters.py 
b/lldb/test/API/commands/register/register_command/TestRegisters.py
index ea89c5dffb156..b77a5e8794a15 100644
--- a/lldb/test/API/commands/register/register_command/TestRegisters.py
+++ b/lldb/test/API/commands/register/register_command/TestRegisters.py
@@ -702,7 +702,7 @@ def test_fs_gs_base(self):
             "fs_base does not equal to pthread_self() value.",
         )
 
-    @requireNotWasm  # attaching requires launching the inferior as a host 
process
+    @requireNotWasm("attaching requires launching the inferior as a host 
process")
     def test_process_must_be_stopped(self):
         """Check that all register commands error when the process is not 
stopped."""
         self.build()
diff --git 
a/lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py
 
b/lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py
index c994c24481e52..bc40e1e9baae4 100644
--- 
a/lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py
+++ 
b/lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py
@@ -10,7 +10,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # no remote platform to auto-install onto
+@requireNotWasm("no remote platform to auto-install onto")
 class TestAutoInstallMainExecutable(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
     SHARED_BUILD_TESTCASE = False
diff --git 
a/lldb/test/API/functionalities/breakpoint/breakpoint_locations/after_rebuild/TestLocationsAfterRebuild.py
 
b/lldb/test/API/functionalities/breakpoint/breakpoint_locations/after_rebuild/TestLocationsAfterRebuild.py
index 87490a49bec5e..ba1f686e78da3 100644
--- 
a/lldb/test/API/functionalities/breakpoint/breakpoint_locations/after_rebuild/TestLocationsAfterRebuild.py
+++ 
b/lldb/test/API/functionalities/breakpoint/breakpoint_locations/after_rebuild/TestLocationsAfterRebuild.py
@@ -18,8 +18,10 @@ class TestLocationsAfterRebuild(TestBase):
     # each debug info format.
     NO_DEBUG_INFO_TESTCASE = True
 
-    @requireNotWasm  # a WASI executable wraps main, so a breakpoint on it 
takes two locations
-    @requireNotWindows  # On Windows we cannot remove a file that lldb is 
debugging.
+    @requireNotWasm(
+        "a WASI executable wraps main, so a breakpoint on it takes two 
locations"
+    )
+    @requireNotWindows("On Windows we cannot remove a file that lldb is 
debugging.")
     def test_remaining_location_spec(self):
         """If we rebuild a couple of times some of the old locations
         get removed.  Make sure the command-line breakpoint id
diff --git 
a/lldb/test/API/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py 
b/lldb/test/API/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py
index f8587133bb36f..bf0a381a7d59a 100644
--- a/lldb/test/API/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py
+++ b/lldb/test/API/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py
@@ -138,9 +138,10 @@ def breakpoint_id_tests(self):
             self.verify_breakpoint_locations(target, bp_dict)
 
     @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24764")
-    # Wasm emits a single merged destructor rather than the distinct D1/D2
-    # variants whose mangled names this test looks up by hand.
-    @requireNotWasm
+    @requireNotWasm(
+        "Wasm emits a single merged destructor rather than the distinct D1/D2"
+        "variants whose mangled names this test looks up by hand."
+    )
     def test_destructors(self):
         self.build()
         exe = self.getBuildArtifact("a.out")
diff --git 
a/lldb/test/API/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py
 
b/lldb/test/API/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py
index ccf011cf0146d..769e1d82af5ae 100644
--- 
a/lldb/test/API/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py
+++ 
b/lldb/test/API/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # wasm inferiors are built with -fno-exceptions
+@requireNotWasm("wasm inferiors are built with -fno-exceptions")
 class TestCPPExceptionBreakpoint(TestBase):
     my_var = 10
 
diff --git 
a/lldb/test/API/functionalities/breakpoint/delayed_breakpoints/TestDelayedBreakpoint.py
 
b/lldb/test/API/functionalities/breakpoint/delayed_breakpoints/TestDelayedBreakpoint.py
index ae78b924960a9..fb9a764b5170e 100644
--- 
a/lldb/test/API/functionalities/breakpoint/delayed_breakpoints/TestDelayedBreakpoint.py
+++ 
b/lldb/test/API/functionalities/breakpoint/delayed_breakpoints/TestDelayedBreakpoint.py
@@ -6,7 +6,7 @@
 
 
 @skipIfWindowsAndNoLLDBServer
-@requireNotWasm  # iwasm gdb stub lacks the needed packets
+@requireNotWasm("iwasm gdb stub lacks the needed packets")
 class TestDelayedBreakpoint(TestBase):
     def test(self):
         self.build()
diff --git 
a/lldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py
 
b/lldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py
index 1b83d8701a9f7..c99d521ab356c 100644
--- 
a/lldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py
+++ 
b/lldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py
@@ -14,7 +14,7 @@
 from functionalities.breakpoint.hardware_breakpoints.base import *
 
 
-@requireNotWasm  # no hardware breakpoints
+@requireNotWasm("no hardware breakpoints")
 class BreakpointLocationsTestCase(HardwareBreakpointTestBase):
     def test_breakpoint(self):
         """Test regular breakpoints when hardware breakpoints are required."""
diff --git 
a/lldb/test/API/functionalities/breakpoint/hardware_breakpoints/simple_hw_breakpoints/TestSimpleHWBreakpoints.py
 
b/lldb/test/API/functionalities/breakpoint/hardware_breakpoints/simple_hw_breakpoints/TestSimpleHWBreakpoints.py
index 5241c588dd661..c25959125ec97 100644
--- 
a/lldb/test/API/functionalities/breakpoint/hardware_breakpoints/simple_hw_breakpoints/TestSimpleHWBreakpoints.py
+++ 
b/lldb/test/API/functionalities/breakpoint/hardware_breakpoints/simple_hw_breakpoints/TestSimpleHWBreakpoints.py
@@ -6,7 +6,7 @@
 from functionalities.breakpoint.hardware_breakpoints.base import *
 
 
-@requireNotWasm  # no hardware breakpoints
+@requireNotWasm("no hardware breakpoints")
 class SimpleHWBreakpointTest(HardwareBreakpointTestBase):
     @skipTestIfFn(HardwareBreakpointTestBase.hw_breakpoints_unsupported)
     def test(self):
diff --git 
a/lldb/test/API/functionalities/builtin-debugtrap/TestBuiltinDebugTrap.py 
b/lldb/test/API/functionalities/builtin-debugtrap/TestBuiltinDebugTrap.py
index fae4367c188b5..5b44f4513cd12 100644
--- a/lldb/test/API/functionalities/builtin-debugtrap/TestBuiltinDebugTrap.py
+++ b/lldb/test/API/functionalities/builtin-debugtrap/TestBuiltinDebugTrap.py
@@ -11,9 +11,10 @@
 class BuiltinDebugTrapTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
-    # __builtin_debugtrap lowers to the WebAssembly `unreachable` instruction, 
a
-    # fatal trap that cannot be resumed as this test expects.
-    @requireNotWasm
+    @requireNotWasm(
+        " __builtin_debugtrap lowers to the WebAssembly `unreachable` 
instruction, a"
+        "fatal trap that cannot be resumed as this test expects."
+    )
     def test(self):
         platform_stop_reason = lldb.eStopReasonSignal
         platform = self.getPlatform()
diff --git a/lldb/test/API/functionalities/completion/TestCompletion.py 
b/lldb/test/API/functionalities/completion/TestCompletion.py
index 794c6a528bcdd..1ffdfaff3921b 100644
--- a/lldb/test/API/functionalities/completion/TestCompletion.py
+++ b/lldb/test/API/functionalities/completion/TestCompletion.py
@@ -2,7 +2,6 @@
 Test the lldb command line completion mechanism.
 """
 
-
 import os
 from multiprocessing import Process
 import lldb
@@ -12,7 +11,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # driver cannot launch a Wasm inferior
+@requireNotWasm("driver cannot launch a Wasm inferior")
 class CommandLineCompletionTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
@@ -943,7 +942,9 @@ def test_shlib_name(self):
         self.build()
         error = lldb.SBError()
         # Create a target, but don't load dependent modules
-        target = self.dbg.CreateTarget(self.getBuildArtifact("a.out"), None, 
None, False, error)
+        target = self.dbg.CreateTarget(
+            self.getBuildArtifact("a.out"), None, None, False, error
+        )
         self.assertSuccess(error)
         self.registerSharedLibrariesWithTarget(target, ["shared"])
 
diff --git 
a/lldb/test/API/functionalities/deleted-executable/TestDeletedExecutable.py 
b/lldb/test/API/functionalities/deleted-executable/TestDeletedExecutable.py
index 688f58e12ec8a..4bf9bdd83473d 100644
--- a/lldb/test/API/functionalities/deleted-executable/TestDeletedExecutable.py
+++ b/lldb/test/API/functionalities/deleted-executable/TestDeletedExecutable.py
@@ -10,11 +10,11 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # attaching requires launching the inferior as a host process
+@requireNotWasm("attaching requires launching the inferior as a host process")
 class TestDeletedExecutable(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
-    @requireNotWindows  # cannot delete a running executable
+    @requireNotWindows("cannot delete a running executable")
     def test(self):
         self.build()
         exe = self.getBuildArtifact("a.out")
diff --git a/lldb/test/API/functionalities/exec/TestExec.py 
b/lldb/test/API/functionalities/exec/TestExec.py
index 39b5cd41621c8..b9551fe386638 100644
--- a/lldb/test/API/functionalities/exec/TestExec.py
+++ b/lldb/test/API/functionalities/exec/TestExec.py
@@ -8,7 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # no exec() on WebAssembly
+@requireNotWasm("no exec() on WebAssembly")
 class ExecTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/functionalities/fork/resumes-child/TestForkResumesChild.py 
b/lldb/test/API/functionalities/fork/resumes-child/TestForkResumesChild.py
index 5fa09f1354a53..d9105fb9a4c49 100644
--- a/lldb/test/API/functionalities/fork/resumes-child/TestForkResumesChild.py
+++ b/lldb/test/API/functionalities/fork/resumes-child/TestForkResumesChild.py
@@ -9,7 +9,7 @@
 from lldbsuite.test.decorators import *
 
 
-@requireNotWasm  # no fork() on WebAssembly
+@requireNotWasm("no fork() on WebAssembly")
 class TestForkResumesChild(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/functionalities/gdb_remote_client/TestDynamicLoaderDarwin.py 
b/lldb/test/API/functionalities/gdb_remote_client/TestDynamicLoaderDarwin.py
index af65c5e6463ca..2ea86a669da41 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestDynamicLoaderDarwin.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestDynamicLoaderDarwin.py
@@ -91,7 +91,7 @@
 arm64_binary = 
"cffaedfe0c000001000000000200000010000000e8020000850020000000000019000000480000005f5f504147455a45524f00000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000019000000e80000005f5f54455854000000000000000000000000000001000000004000000000000000000000000000000040000000000000050000000500000002000000000000005f5f74657874000000000000000000005f5f5445585400000000000000000000b03f0000010000000800000000000000b03f0000020000000000000000000000000400800000000000000000000000005f5f756e77696e645f696e666f0000005f5f5445585400000000000000000000b83f0000010000004800000000000000b83f00000200000000000000000000000000000000000000000000000000000019000000480000005f5f4c494e4b45444954000000000000004000000100000000400000000000000040000000000000b8010000000000000100000001000000000000000000000034000080100000000040000038000000330000801000000038400000300000000200000018000000704000000100000080400000180000000b000000500000000000000000000000000000000100000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e000000200000000c0000002f7573722f6c69622f64796c64000000000000001b00000018000000a9981092eb3632f4afd9957e769160d932000000200000000100000000000c0000050c000100000003000000000633032a0000001000000000000000000000002800008018000000b03f00000000000000000000000000000c00000038000000180000000200000001781f05000001002f7573722f6c69622f6c696253797374656d2e422e64796c696200000000000026000000100000006840000008000000290000001000000070400000000000001d00000010000000a04000001801"
 
 
-@requireNotWasm  # exercises the Darwin dynamic loader
+@requireNotWasm("exercises the Darwin dynamic loader")
 class TestDynamicLoaderDarwin(GDBRemoteTestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/functionalities/gdb_remote_client/TestPlatformKill.py 
b/lldb/test/API/functionalities/gdb_remote_client/TestPlatformKill.py
index fce4b586aa0d7..f76bf3c981d17 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestPlatformKill.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestPlatformKill.py
@@ -6,7 +6,7 @@
 from lldbsuite.test.lldbgdbclient import GDBRemoteTestBase
 
 
-@requireNotWasm  # attaching requires launching the inferior as a host process
+@requireNotWasm("attaching requires launching the inferior as a host process")
 class TestPlatformKill(GDBRemoteTestBase):
     SHARED_BUILD_TESTCASE = False
 
diff --git 
a/lldb/test/API/functionalities/inferior-changed/TestInferiorChanged.py 
b/lldb/test/API/functionalities/inferior-changed/TestInferiorChanged.py
index 0b9e4f17ed957..448320e453a5e 100644
--- a/lldb/test/API/functionalities/inferior-changed/TestInferiorChanged.py
+++ b/lldb/test/API/functionalities/inferior-changed/TestInferiorChanged.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # wasm has no memory-protection faults/signals
+@requireNotWasm("wasm has no memory-protection faults/signals")
 class ChangedInferiorTestCase(TestBase):
     SHARED_BUILD_TESTCASE = False
 
diff --git 
a/lldb/test/API/functionalities/inferior-crashing/TestInferiorCrashing.py 
b/lldb/test/API/functionalities/inferior-crashing/TestInferiorCrashing.py
index 09ea96bfeaca9..dfd311c766349 100644
--- a/lldb/test/API/functionalities/inferior-crashing/TestInferiorCrashing.py
+++ b/lldb/test/API/functionalities/inferior-crashing/TestInferiorCrashing.py
@@ -8,7 +8,7 @@
 from lldbsuite.test.lldbtest import *
 
 
-@requireNotWasm  # wasm has no memory-protection faults/signals
+@requireNotWasm("wasm has no memory-protection faults/signals")
 class CrashingInferiorTestCase(TestBase):
     @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24778")
     @expectedFailureNetBSD
diff --git 
a/lldb/test/API/functionalities/inferior-crashing/TestInferiorCrashingStep.py 
b/lldb/test/API/functionalities/inferior-crashing/TestInferiorCrashingStep.py
index 8db051852a9a9..248830c7ccac5 100644
--- 
a/lldb/test/API/functionalities/inferior-crashing/TestInferiorCrashingStep.py
+++ 
b/lldb/test/API/functionalities/inferior-crashing/TestInferiorCrashingStep.py
@@ -8,7 +8,7 @@
 from lldbsuite.test.lldbtest import *
 
 
-@requireNotWasm  # wasm has no memory-protection faults/signals
+@requireNotWasm("wasm has no memory-protection faults/signals")
 class CrashingInferiorStepTestCase(TestBase):
     @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24778")
     @expectedFailureNetBSD
diff --git 
a/lldb/test/API/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferior.py
 
b/lldb/test/API/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferior.py
index 44d144d4df8ff..89f605510918b 100644
--- 
a/lldb/test/API/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferior.py
+++ 
b/lldb/test/API/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferior.py
@@ -8,7 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # wasm has no memory-protection faults/signals
+@requireNotWasm("wasm has no memory-protection faults/signals")
 class CrashingRecursiveInferiorTestCase(TestBase):
     @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24778")
     @expectedFailureNetBSD
diff --git 
a/lldb/test/API/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferiorStep.py
 
b/lldb/test/API/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferiorStep.py
index 625f4467802d7..99d03c257801d 100644
--- 
a/lldb/test/API/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferiorStep.py
+++ 
b/lldb/test/API/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferiorStep.py
@@ -8,7 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # wasm has no memory-protection faults/signals
+@requireNotWasm("wasm has no memory-protection faults/signals")
 class CrashingRecursiveInferiorStepTestCase(TestBase):
     def test_recursive_inferior_crashing_step(self):
         """Test that stepping after a crash behaves correctly."""
diff --git a/lldb/test/API/functionalities/longjmp/TestLongjmp.py 
b/lldb/test/API/functionalities/longjmp/TestLongjmp.py
index 91bf789e6c9a7..99e33091d3ce1 100644
--- a/lldb/test/API/functionalities/longjmp/TestLongjmp.py
+++ b/lldb/test/API/functionalities/longjmp/TestLongjmp.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # setjmp/longjmp on wasm requires exception-handling support
+@requireNotWasm("setjmp/longjmp on wasm requires exception-handling support")
 class LongjmpTestCase(TestBase):
     @skipIfDarwin  # llvm.org/pr16769: LLDB on Mac OS X dies in function 
ReadRegisterBytes in GDBRemoteRegisterContext.cpp
     @skipIfWindows # Test is flaky on Windows
diff --git a/lldb/test/API/functionalities/memory/holes/TestMemoryHoles.py 
b/lldb/test/API/functionalities/memory/holes/TestMemoryHoles.py
index 2921d41a7a6c3..ad1becefd5534 100644
--- a/lldb/test/API/functionalities/memory/holes/TestMemoryHoles.py
+++ b/lldb/test/API/functionalities/memory/holes/TestMemoryHoles.py
@@ -9,7 +9,7 @@
 from lldbsuite.test.decorators import *
 
 
-@requireNotWasm  # WASI has no mmap
+@requireNotWasm("WASI has no mmap")
 class MemoryHolesTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/functionalities/module_cache/simple_exe/TestModuleCacheSimple.py
 
b/lldb/test/API/functionalities/module_cache/simple_exe/TestModuleCacheSimple.py
index 9895720e25629..3b83143d45355 100644
--- 
a/lldb/test/API/functionalities/module_cache/simple_exe/TestModuleCacheSimple.py
+++ 
b/lldb/test/API/functionalities/module_cache/simple_exe/TestModuleCacheSimple.py
@@ -9,7 +9,7 @@
 import time
 
 
-@requireNotWasm  # modules carry no build ID to cache on
+@requireNotWasm("modules carry no build ID to cache on")
 class ModuleCacheTestcaseSimple(TestBase):
     SHARED_BUILD_TESTCASE = False
 
diff --git 
a/lldb/test/API/functionalities/process_group/TestChangeProcessGroup.py 
b/lldb/test/API/functionalities/process_group/TestChangeProcessGroup.py
index d02733c40b41d..2b5768e217c2a 100644
--- a/lldb/test/API/functionalities/process_group/TestChangeProcessGroup.py
+++ b/lldb/test/API/functionalities/process_group/TestChangeProcessGroup.py
@@ -8,7 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # no fork()/setpgid() on WebAssembly
+@requireNotWasm("no fork()/setpgid() on WebAssembly")
 class ChangeProcessGroupTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/functionalities/return-value/TestReturnValue.py 
b/lldb/test/API/functionalities/return-value/TestReturnValue.py
index b5c90d31a0f6d..ecf5e4d90657a 100644
--- a/lldb/test/API/functionalities/return-value/TestReturnValue.py
+++ b/lldb/test/API/functionalities/return-value/TestReturnValue.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # return value is unrecoverable from the operand stack at a 
step-out
+@requireNotWasm("return value is unrecoverable from the operand stack at a 
step-out")
 class ReturnValueTestCase(TestBase):
     def affected_by_pr33042(self):
         return (
diff --git 
a/lldb/test/API/functionalities/reverse-execution/TestReverseContinueBreakpoints.py
 
b/lldb/test/API/functionalities/reverse-execution/TestReverseContinueBreakpoints.py
index 6352f42be7051..dedf993a4ff45 100644
--- 
a/lldb/test/API/functionalities/reverse-execution/TestReverseContinueBreakpoints.py
+++ 
b/lldb/test/API/functionalities/reverse-execution/TestReverseContinueBreakpoints.py
@@ -8,7 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # no reverse execution
+@requireNotWasm("no reverse execution")
 class TestReverseContinueBreakpoints(ReverseTestBase):
     @skipIfRemote
     def test_reverse_continue(self):
diff --git 
a/lldb/test/API/functionalities/reverse-execution/TestReverseContinueWatchpoints.py
 
b/lldb/test/API/functionalities/reverse-execution/TestReverseContinueWatchpoints.py
index 47a3464b99fa4..6143b568c6355 100644
--- 
a/lldb/test/API/functionalities/reverse-execution/TestReverseContinueWatchpoints.py
+++ 
b/lldb/test/API/functionalities/reverse-execution/TestReverseContinueWatchpoints.py
@@ -8,7 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # no reverse execution
+@requireNotWasm("no reverse execution")
 class TestReverseContinueWatchpoints(ReverseTestBase):
     @skipIfRemote
     # Watchpoints don't work in single-step mode
diff --git 
a/lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py
 
b/lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py
index 86ece605ce660..eb327d2a34c90 100644
--- 
a/lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py
+++ 
b/lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py
@@ -10,7 +10,8 @@
 from lldbsuite.test.lldbtest import TestBase
 from lldbsuite.test import lldbutil
 
-@requireNotWasm  # multithreaded C++ inferior; wasm has no threads or 
exceptions
+
+@requireNotWasm("multithreaded C++ inferior; wasm has no threads or 
exceptions")
 class ScriptedFrameProviderTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/functionalities/scripted_frame_provider/thread_filter/TestFrameProviderThreadFilter.py
 
b/lldb/test/API/functionalities/scripted_frame_provider/thread_filter/TestFrameProviderThreadFilter.py
index ff6a3a2b7c7d0..756860625a8bc 100644
--- 
a/lldb/test/API/functionalities/scripted_frame_provider/thread_filter/TestFrameProviderThreadFilter.py
+++ 
b/lldb/test/API/functionalities/scripted_frame_provider/thread_filter/TestFrameProviderThreadFilter.py
@@ -10,7 +10,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # multithreaded C++ inferior; wasm has no threads or 
exceptions
+@requireNotWasm("multithreaded C++ inferior; wasm has no threads or 
exceptions")
 class FrameProviderThreadFilterTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/functionalities/signal/raise/TestRaise.py 
b/lldb/test/API/functionalities/signal/raise/TestRaise.py
index aa3a6db9405ba..e19f262aa6f31 100644
--- a/lldb/test/API/functionalities/signal/raise/TestRaise.py
+++ b/lldb/test/API/functionalities/signal/raise/TestRaise.py
@@ -20,7 +20,7 @@ def test_sigstop(self):
         # passing of SIGSTOP is not correctly handled, so not testing that
         # scenario: https://llvm.org/bugs/show_bug.cgi?id=23574
 
-    @requireNotDarwin  # darwin does not support real time signals
+    @requireNotDarwin("darwin does not support real time signals")
     @skipIfTargetAndroid()
     def test_sigsigrtmin(self):
         self.build()
diff --git 
a/lldb/test/API/functionalities/tail_call_frames/ambiguous_tail_call_seq1/TestAmbiguousTailCallSeq1.py
 
b/lldb/test/API/functionalities/tail_call_frames/ambiguous_tail_call_seq1/TestAmbiguousTailCallSeq1.py
index be869a8cdc039..fa6459e4614b8 100644
--- 
a/lldb/test/API/functionalities/tail_call_frames/ambiguous_tail_call_seq1/TestAmbiguousTailCallSeq1.py
+++ 
b/lldb/test/API/functionalities/tail_call_frames/ambiguous_tail_call_seq1/TestAmbiguousTailCallSeq1.py
@@ -3,7 +3,7 @@
 
 decorators = [
     decorators.skipUnlessHasCallSiteInfo,
-    decorators.requireNotWasm,  # no unwinder support for tail-call frames
+    decorators.requireNotWasm("no unwinder support for tail-call frames"),
     decorators.skipIf(dwarf_version=["<", "4"]),
 ]
 lldbinline.MakeInlineTest(
diff --git 
a/lldb/test/API/functionalities/tail_call_frames/ambiguous_tail_call_seq2/TestAmbiguousTailCallSeq2.py
 
b/lldb/test/API/functionalities/tail_call_frames/ambiguous_tail_call_seq2/TestAmbiguousTailCallSeq2.py
index bb783fae80822..0689d968daee6 100644
--- 
a/lldb/test/API/functionalities/tail_call_frames/ambiguous_tail_call_seq2/TestAmbiguousTailCallSeq2.py
+++ 
b/lldb/test/API/functionalities/tail_call_frames/ambiguous_tail_call_seq2/TestAmbiguousTailCallSeq2.py
@@ -3,7 +3,7 @@
 
 decorators = [
     decorators.skipUnlessHasCallSiteInfo,
-    decorators.requireNotWasm,  # no unwinder support for tail-call frames
+    decorators.requireNotWasm("no unwinder support for tail-call frames"),
     decorators.skipIf(dwarf_version=["<", "4"]),
 ]
 lldbinline.MakeInlineTest(
diff --git 
a/lldb/test/API/functionalities/tail_call_frames/cross_object/TestCrossObjectTailCalls.py
 
b/lldb/test/API/functionalities/tail_call_frames/cross_object/TestCrossObjectTailCalls.py
index ab3d939c25ce9..b12a43092688d 100644
--- 
a/lldb/test/API/functionalities/tail_call_frames/cross_object/TestCrossObjectTailCalls.py
+++ 
b/lldb/test/API/functionalities/tail_call_frames/cross_object/TestCrossObjectTailCalls.py
@@ -7,7 +7,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # no unwinder support for tail-call frames
+@requireNotWasm("no unwinder support for tail-call frames")
 class TestCrossObjectTailCalls(TestBase):
     @skipIf(compiler="clang", compiler_version=["<", "22.0"])
     @skipIf(dwarf_version=["<", "4"])
diff --git 
a/lldb/test/API/functionalities/tail_call_frames/disambiguate_call_site/TestDisambiguateCallSite.py
 
b/lldb/test/API/functionalities/tail_call_frames/disambiguate_call_site/TestDisambiguateCallSite.py
index 1a610c57e319d..6dd7be18f1df6 100644
--- 
a/lldb/test/API/functionalities/tail_call_frames/disambiguate_call_site/TestDisambiguateCallSite.py
+++ 
b/lldb/test/API/functionalities/tail_call_frames/disambiguate_call_site/TestDisambiguateCallSite.py
@@ -3,7 +3,7 @@
 
 decor = [
     decorators.skipUnlessHasCallSiteInfo,
-    decorators.requireNotWasm,  # no unwinder support for tail-call frames
+    decorators.requireNotWasm("no unwinder support for tail-call frames"),
     decorators.skipIf(dwarf_version=["<", "4"]),
     decorators.skipIf(compiler="clang", compiler_version=["<", "11.0"]),
 ]
diff --git 
a/lldb/test/API/functionalities/tail_call_frames/disambiguate_paths_to_common_sink/TestDisambiguatePathsToCommonSink.py
 
b/lldb/test/API/functionalities/tail_call_frames/disambiguate_paths_to_common_sink/TestDisambiguatePathsToCommonSink.py
index 3746fc62469d2..65b07423a6dda 100644
--- 
a/lldb/test/API/functionalities/tail_call_frames/disambiguate_paths_to_common_sink/TestDisambiguatePathsToCommonSink.py
+++ 
b/lldb/test/API/functionalities/tail_call_frames/disambiguate_paths_to_common_sink/TestDisambiguatePathsToCommonSink.py
@@ -3,7 +3,7 @@
 
 decor = [
     decorators.skipUnlessHasCallSiteInfo,
-    decorators.requireNotWasm,  # no unwinder support for tail-call frames
+    decorators.requireNotWasm("no unwinder support for tail-call frames"),
     decorators.skipIf(dwarf_version=["<", "4"]),
     decorators.skipIf(compiler="clang", compiler_version=["<", "11.0"]),
 ]
diff --git 
a/lldb/test/API/functionalities/tail_call_frames/disambiguate_tail_call_seq/TestDisambiguateTailCallSeq.py
 
b/lldb/test/API/functionalities/tail_call_frames/disambiguate_tail_call_seq/TestDisambiguateTailCallSeq.py
index 783511ae2b497..268da2b969abc 100644
--- 
a/lldb/test/API/functionalities/tail_call_frames/disambiguate_tail_call_seq/TestDisambiguateTailCallSeq.py
+++ 
b/lldb/test/API/functionalities/tail_call_frames/disambiguate_tail_call_seq/TestDisambiguateTailCallSeq.py
@@ -3,7 +3,7 @@
 
 decor = [
     decorators.skipUnlessHasCallSiteInfo,
-    decorators.requireNotWasm,  # no unwinder support for tail-call frames
+    decorators.requireNotWasm("no unwinder support for tail-call frames"),
     decorators.skipIf(dwarf_version=["<", "4"]),
     decorators.skipIf(compiler="clang", compiler_version=["<", "11.0"]),
 ]
diff --git 
a/lldb/test/API/functionalities/tail_call_frames/inlining_and_tail_calls/TestInliningAndTailCalls.py
 
b/lldb/test/API/functionalities/tail_call_frames/inlining_and_tail_calls/TestInliningAndTailCalls.py
index ec4e08aaae767..74b903debe326 100644
--- 
a/lldb/test/API/functionalities/tail_call_frames/inlining_and_tail_calls/TestInliningAndTailCalls.py
+++ 
b/lldb/test/API/functionalities/tail_call_frames/inlining_and_tail_calls/TestInliningAndTailCalls.py
@@ -3,7 +3,7 @@
 
 decor = [
     decorators.skipUnlessHasCallSiteInfo,
-    decorators.requireNotWasm,  # no unwinder support for tail-call frames
+    decorators.requireNotWasm("no unwinder support for tail-call frames"),
     decorators.skipIf(dwarf_version=["<", "4"]),
     decorators.skipIf(compiler="clang", compiler_version=["<", "11.0"]),
 ]
diff --git 
a/lldb/test/API/functionalities/tail_call_frames/sbapi_support/TestTailCallFrameSBAPI.py
 
b/lldb/test/API/functionalities/tail_call_frames/sbapi_support/TestTailCallFrameSBAPI.py
index 778d0628f6127..52a6afb738ee0 100644
--- 
a/lldb/test/API/functionalities/tail_call_frames/sbapi_support/TestTailCallFrameSBAPI.py
+++ 
b/lldb/test/API/functionalities/tail_call_frames/sbapi_support/TestTailCallFrameSBAPI.py
@@ -8,7 +8,7 @@
 from lldbsuite.test.lldbtest import *
 
 
-@requireNotWasm  # no unwinder support for tail-call frames
+@requireNotWasm("no unwinder support for tail-call frames")
 class TestTailCallFrameSBAPI(TestBase):
     @skipIf(compiler="clang", compiler_version=["<", "10.0"])
     @skipIf(dwarf_version=["<", "4"])
diff --git 
a/lldb/test/API/functionalities/tail_call_frames/thread_step_out_message/TestArtificialFrameStepOutMessage.py
 
b/lldb/test/API/functionalities/tail_call_frames/thread_step_out_message/TestArtificialFrameStepOutMessage.py
index 7f8a6f696c801..c44a18e4f5184 100644
--- 
a/lldb/test/API/functionalities/tail_call_frames/thread_step_out_message/TestArtificialFrameStepOutMessage.py
+++ 
b/lldb/test/API/functionalities/tail_call_frames/thread_step_out_message/TestArtificialFrameStepOutMessage.py
@@ -3,7 +3,7 @@
 
 decor = [
     decorators.skipUnlessHasCallSiteInfo,
-    decorators.requireNotWasm,  # no unwinder support for tail-call frames
+    decorators.requireNotWasm("no unwinder support for tail-call frames"),
     decorators.skipIf(dwarf_version=["<", "4"]),
     decorators.skipIf(compiler="clang", compiler_version=["<", "11.0"]),
 ]
diff --git 
a/lldb/test/API/functionalities/tail_call_frames/thread_step_out_or_return/TestSteppingOutWithArtificialFrames.py
 
b/lldb/test/API/functionalities/tail_call_frames/thread_step_out_or_return/TestSteppingOutWithArtificialFrames.py
index 73a07f1e35c63..5e46d381acc98 100644
--- 
a/lldb/test/API/functionalities/tail_call_frames/thread_step_out_or_return/TestSteppingOutWithArtificialFrames.py
+++ 
b/lldb/test/API/functionalities/tail_call_frames/thread_step_out_or_return/TestSteppingOutWithArtificialFrames.py
@@ -8,7 +8,7 @@
 from lldbsuite.test.lldbtest import *
 
 
-@requireNotWasm  # no unwinder support for tail-call frames
+@requireNotWasm("no unwinder support for tail-call frames")
 class TestArtificialFrameThreadStepOut1(TestBase):
     # If your test case doesn't stress debug info, then
     # set this to true.  That way it won't be run once for
diff --git 
a/lldb/test/API/functionalities/tail_call_frames/unambiguous_sequence/TestUnambiguousTailCalls.py
 
b/lldb/test/API/functionalities/tail_call_frames/unambiguous_sequence/TestUnambiguousTailCalls.py
index 7518acf6ba855..56aa2efa93e15 100644
--- 
a/lldb/test/API/functionalities/tail_call_frames/unambiguous_sequence/TestUnambiguousTailCalls.py
+++ 
b/lldb/test/API/functionalities/tail_call_frames/unambiguous_sequence/TestUnambiguousTailCalls.py
@@ -3,7 +3,7 @@
 
 decor = [
     decorators.skipUnlessHasCallSiteInfo,
-    decorators.requireNotWasm,  # no unwinder support for tail-call frames
+    decorators.requireNotWasm("no unwinder support for tail-call frames"),
     decorators.skipIf(archs=["arm$"], oslist=["linux"]),
     decorators.skipIf(dwarf_version=["<", "4"]),
     decorators.skipIf(compiler="clang", compiler_version=["<", "11.0"]),
diff --git a/lldb/test/API/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py 
b/lldb/test/API/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py
index 27b690605cca8..ca7659b464d66 100644
--- a/lldb/test/API/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py
+++ b/lldb/test/API/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # wasm inferiors are built with -fno-exceptions
+@requireNotWasm("wasm inferiors are built with -fno-exceptions")
 class CPPBreakpointTestCase(TestBase):
     def setUp(self):
         # Call super's setUp().
diff --git 
a/lldb/test/API/lang/cpp/floating-types-specialization/TestCppFloatingTypesSpecialization.py
 
b/lldb/test/API/lang/cpp/floating-types-specialization/TestCppFloatingTypesSpecialization.py
index 1a0e7055c85cf..5376e830eba8a 100644
--- 
a/lldb/test/API/lang/cpp/floating-types-specialization/TestCppFloatingTypesSpecialization.py
+++ 
b/lldb/test/API/lang/cpp/floating-types-specialization/TestCppFloatingTypesSpecialization.py
@@ -5,7 +5,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # _Float16/__bf16 are unsupported on the wasm target
+@requireNotWasm("_Float16/__bf16 are unsupported on the wasm target")
 class TestCase(TestBase):
     @skipIf(compiler="clang", compiler_version=["<", "17.0"])
     def test(self):
diff --git a/lldb/test/API/lang/cpp/llvm-style/TestLLVMStyle.py 
b/lldb/test/API/lang/cpp/llvm-style/TestLLVMStyle.py
index ba20388ea8d26..f0b5ba278f79f 100644
--- a/lldb/test/API/lang/cpp/llvm-style/TestLLVMStyle.py
+++ b/lldb/test/API/lang/cpp/llvm-style/TestLLVMStyle.py
@@ -1,4 +1,4 @@
 from lldbsuite.test import lldbinline
 from lldbsuite.test import decorators
 
-lldbinline.MakeInlineTest(__file__, globals(), [decorators.requireNotWasm])
+lldbinline.MakeInlineTest(__file__, globals(), 
[decorators.requireExpressionEvaluation])
diff --git 
a/lldb/test/API/lang/cpp/namespace_conflicts/TestNamespaceConflicts.py 
b/lldb/test/API/lang/cpp/namespace_conflicts/TestNamespaceConflicts.py
index ba20388ea8d26..f0b5ba278f79f 100644
--- a/lldb/test/API/lang/cpp/namespace_conflicts/TestNamespaceConflicts.py
+++ b/lldb/test/API/lang/cpp/namespace_conflicts/TestNamespaceConflicts.py
@@ -1,4 +1,4 @@
 from lldbsuite.test import lldbinline
 from lldbsuite.test import decorators
 
-lldbinline.MakeInlineTest(__file__, globals(), [decorators.requireNotWasm])
+lldbinline.MakeInlineTest(__file__, globals(), 
[decorators.requireExpressionEvaluation])
diff --git a/lldb/test/API/lang/cpp/operators/TestCppOperators.py 
b/lldb/test/API/lang/cpp/operators/TestCppOperators.py
index ee3c1d1199708..65b0e9a480cfb 100644
--- a/lldb/test/API/lang/cpp/operators/TestCppOperators.py
+++ b/lldb/test/API/lang/cpp/operators/TestCppOperators.py
@@ -5,7 +5,7 @@
     __file__,
     globals(),
     [
-        decorators.requireNotWasm,
+        decorators.requireExpressionEvaluation,
         decorators.expectedFailureAll(bugnumber="llvm.org/pr50814", 
compiler="gcc"),
     ],
 )
diff --git 
a/lldb/test/API/lang/cpp/pointer_to_member_type_depending_on_parent_size/TestPointerToMemberTypeDependingOnParentSize.py
 
b/lldb/test/API/lang/cpp/pointer_to_member_type_depending_on_parent_size/TestPointerToMemberTypeDependingOnParentSize.py
index 44c509272641d..6021e97379fea 100644
--- 
a/lldb/test/API/lang/cpp/pointer_to_member_type_depending_on_parent_size/TestPointerToMemberTypeDependingOnParentSize.py
+++ 
b/lldb/test/API/lang/cpp/pointer_to_member_type_depending_on_parent_size/TestPointerToMemberTypeDependingOnParentSize.py
@@ -8,9 +8,10 @@ class TestCase(TestBase):
     # GCC rejects the test code because `ToLayout` is not complete when
     # pointer_to_member_member is declared.
     @skipIf(compiler="gcc")
-    # On Windows both MSVC and Clang are rejecting the test code because
-    # `ToLayout` is not complete when pointer_to_member_member is declared.
-    @requireNotWindows
+    @requireNotWindows(
+        "On Windows both MSVC and Clang are rejecting the test code because"
+        "`ToLayout` is not complete when pointer_to_member_member is declared."
+    )
     @no_debug_info_test
     def test(self):
         """
diff --git a/lldb/test/API/lang/cpp/printf/TestPrintf.py 
b/lldb/test/API/lang/cpp/printf/TestPrintf.py
index f7264f99df2a2..e4c1822d5bb69 100644
--- a/lldb/test/API/lang/cpp/printf/TestPrintf.py
+++ b/lldb/test/API/lang/cpp/printf/TestPrintf.py
@@ -5,7 +5,7 @@
     __file__,
     globals(),
     [
-        decorators.requireNotWasm,
+        decorators.requireExpressionEvaluation,
         decorators.expectedFailureAll(bugnumber="llvm.org/PR36715", 
oslist=["windows"]),
     ],
 )
diff --git a/lldb/test/API/lang/cpp/symbols/TestSymbols.py 
b/lldb/test/API/lang/cpp/symbols/TestSymbols.py
index 65682d57a0fed..5229eb942f1f9 100644
--- a/lldb/test/API/lang/cpp/symbols/TestSymbols.py
+++ b/lldb/test/API/lang/cpp/symbols/TestSymbols.py
@@ -5,7 +5,7 @@
     __file__,
     globals(),
     [
-        decorators.requireNotWasm,
+        decorators.requireExpressionEvaluation,
         decorators.expectedFailureAll(oslist=["windows"], 
bugnumber="llvm.org/pr24764"),
     ],
 )
diff --git a/lldb/test/API/lang/cpp/thread_local/TestThreadLocal.py 
b/lldb/test/API/lang/cpp/thread_local/TestThreadLocal.py
index 4faec9d5613fd..1d7a907c17a77 100644
--- a/lldb/test/API/lang/cpp/thread_local/TestThreadLocal.py
+++ b/lldb/test/API/lang/cpp/thread_local/TestThreadLocal.py
@@ -7,7 +7,7 @@
 from lldbsuite.test import lldbtest
 
 
-@requireNotWasm  # checks the platform-specific TLS-uninitialized error, N/A 
to wasm
+@requireNotWasm("checks the platform-specific TLS-uninitialized error, N/A to 
wasm")
 class PlatformProcessCrashInfoTestCase(TestBase):
     @expectedFailureAll(oslist=["windows", "linux", "freebsd", "netbsd"])
     @skipIfDarwin  # rdar://120795095
diff --git a/lldb/test/API/lang/cpp/trivial_abi/TestTrivialABI.py 
b/lldb/test/API/lang/cpp/trivial_abi/TestTrivialABI.py
index a7a4b1f7fd12b..87638a082e0c3 100644
--- a/lldb/test/API/lang/cpp/trivial_abi/TestTrivialABI.py
+++ b/lldb/test/API/lang/cpp/trivial_abi/TestTrivialABI.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireNotWasm  # return value is unrecoverable from the operand stack at a 
step-out
+@requireNotWasm("return value is unrecoverable from the operand stack at a 
step-out")
 class TestTrivialABI(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/tools/lldb-dap/attach/TestDAP_attach.py 
b/lldb/test/API/tools/lldb-dap/attach/TestDAP_attach.py
index f2a7e4819e644..9baec029c45a4 100644
--- a/lldb/test/API/tools/lldb-dap/attach/TestDAP_attach.py
+++ b/lldb/test/API/tools/lldb-dap/attach/TestDAP_attach.py
@@ -25,7 +25,7 @@
 # Often fails on Arm Linux, but not specifically because it's Arm, something in
 # process scheduling can cause a massive (minutes) delay during this test.
 @skipIf(oslist=["linux"], archs=["arm$"])
-@requireNotWasm  # No attach support
+@requireNotWasm("no attach support")
 class TestDAP_attach(DAPTestCaseBase):
     SHARED_BUILD_TESTCASE = False
 
diff --git a/lldb/test/API/tools/lldb-dap/console/TestDAP_console.py 
b/lldb/test/API/tools/lldb-dap/console/TestDAP_console.py
index 7ef4050a4e908..89db508bf7c38 100644
--- a/lldb/test/API/tools/lldb-dap/console/TestDAP_console.py
+++ b/lldb/test/API/tools/lldb-dap/console/TestDAP_console.py
@@ -116,9 +116,9 @@ def test_custom_escape_prefix(self):
     def test_empty_escape_prefix(self):
         self.do_test_with_escape_prefix("")
 
-    @requireNotWindows
+    @requireNotWindows("requires lldb-server")
     @requirePsutil
-    @requireNotWasm  # the test signals the debug server, which for Wasm is 
the runtime
+    @requireNotWasm("the test signals the debug server, which for Wasm is the 
runtime")
     def test_exit_status_message_sigterm(self):
         import psutil
 
diff --git 
a/lldb/test/API/tools/lldb-dap/databreakpoint/TestDAP_setDataBreakpoints.py 
b/lldb/test/API/tools/lldb-dap/databreakpoint/TestDAP_setDataBreakpoints.py
index 5e3372d3c68c8..bd228e80746a1 100644
--- a/lldb/test/API/tools/lldb-dap/databreakpoint/TestDAP_setDataBreakpoints.py
+++ b/lldb/test/API/tools/lldb-dap/databreakpoint/TestDAP_setDataBreakpoints.py
@@ -8,7 +8,7 @@
 from lldbsuite.test.tools.lldb_dap.types import DataBreakpoint, LaunchArgs
 
 
-@requireNotWasm  # data breakpoints map to watchpoints
+@requireNotWasm("data breakpoints map to watchpoints")
 class TestDAP_setDataBreakpoints(DAPTestCaseBase):
     ACCESS_TYPES = ["read", "write", "readWrite"]
 
diff --git a/lldb/test/API/tools/lldb-dap/disconnect/TestDAP_disconnect.py 
b/lldb/test/API/tools/lldb-dap/disconnect/TestDAP_disconnect.py
index 537d4e399b06c..c6ebef2e584a1 100644
--- a/lldb/test/API/tools/lldb-dap/disconnect/TestDAP_disconnect.py
+++ b/lldb/test/API/tools/lldb-dap/disconnect/TestDAP_disconnect.py
@@ -11,7 +11,7 @@
 import os
 
 
-@requireNotWasm  # no attach support
+@requireNotWasm("no attach support")
 class TestDAP_disconnect(lldbdap_testcase.DAPTestCaseBase):
     SHARED_BUILD_TESTCASE = False
 

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

Reply via email to