[Lldb-commits] [lldb] [lldb][test] Skip tests for features unsupported on WebAssembly (PR #207102)
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Wed Jul 1 16:48:30 PDT 2026
https://github.com/JDevlieghere created https://github.com/llvm/llvm-project/pull/207102
- TestReturnValue, TestTrivialABI: a WebAssembly return value lives on the operand stack with no way to locate it at a step-out, so the returned value can't be recovered.
- TestScriptedFrameProvider, TestFrameProviderThreadFilter: the inferior is multithreaded C++, which wasip1 can't build (no threads, and inferiors are compiled without exception support).
- TestThreadLocal: reading thread-locals works, but the test checks the platform-specific error reported when TLS isn't initialized yet, which WebAssembly doesn't have (already xfail/skip on other platforms).
>From 3d217cd2b8fd17243984256bfb3d4892372a50ae Mon Sep 17 00:00:00 2001
From: Jonas Devlieghere <jonas at devlieghere.com>
Date: Wed, 1 Jul 2026 16:47:28 -0700
Subject: [PATCH] [lldb][test] Skip tests for features unsupported on
WebAssembly
- TestReturnValue, TestTrivialABI: a WebAssembly return value lives on
the operand stack with no way to locate it at a step-out, so the
returned value can't be recovered.
- TestScriptedFrameProvider, TestFrameProviderThreadFilter: the inferior
is multithreaded C++, which wasip1 can't build (no threads, and
inferiors are compiled without exception support).
- TestThreadLocal: reading thread-locals works, but the test checks the
platform-specific error reported when TLS isn't initialized yet, which
WebAssembly doesn't have (already xfail/skip on other platforms).
---
lldb/test/API/functionalities/return-value/TestReturnValue.py | 1 +
.../scripted_frame_provider/TestScriptedFrameProvider.py | 1 +
.../thread_filter/TestFrameProviderThreadFilter.py | 1 +
lldb/test/API/lang/cpp/thread_local/TestThreadLocal.py | 1 +
lldb/test/API/lang/cpp/trivial_abi/TestTrivialABI.py | 1 +
5 files changed, 5 insertions(+)
diff --git a/lldb/test/API/functionalities/return-value/TestReturnValue.py b/lldb/test/API/functionalities/return-value/TestReturnValue.py
index 89e6e67583d7c..9b155d071b6e4 100644
--- a/lldb/test/API/functionalities/return-value/TestReturnValue.py
+++ b/lldb/test/API/functionalities/return-value/TestReturnValue.py
@@ -9,6 +9,7 @@
from lldbsuite.test import lldbutil
+ at skipIfWasm # 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/scripted_frame_provider/TestScriptedFrameProvider.py b/lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py
index b715d99964569..ddd9b68a632bb 100644
--- a/lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py
+++ b/lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py
@@ -10,6 +10,7 @@
from lldbsuite.test.lldbtest import TestBase
from lldbsuite.test import lldbutil
+ at skipIfWasm # 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 d145945a14536..ffaece44423fa 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,6 +10,7 @@
from lldbsuite.test import lldbutil
+ at skipIfWasm # multithreaded C++ inferior; wasm has no threads or exceptions
class FrameProviderThreadFilterTestCase(TestBase):
NO_DEBUG_INFO_TESTCASE = True
diff --git a/lldb/test/API/lang/cpp/thread_local/TestThreadLocal.py b/lldb/test/API/lang/cpp/thread_local/TestThreadLocal.py
index 0b63e15e876d6..3e7bca426f5c2 100644
--- a/lldb/test/API/lang/cpp/thread_local/TestThreadLocal.py
+++ b/lldb/test/API/lang/cpp/thread_local/TestThreadLocal.py
@@ -7,6 +7,7 @@
from lldbsuite.test import lldbtest
+ at skipIfWasm # 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 cdc9da08a1fa4..021d14d613aec 100644
--- a/lldb/test/API/lang/cpp/trivial_abi/TestTrivialABI.py
+++ b/lldb/test/API/lang/cpp/trivial_abi/TestTrivialABI.py
@@ -9,6 +9,7 @@
from lldbsuite.test import lldbutil
+ at skipIfWasm # return value is unrecoverable from the operand stack at a step-out
class TestTrivialABI(TestBase):
NO_DEBUG_INFO_TESTCASE = True
More information about the lldb-commits
mailing list