[Lldb-commits] [lldb] 01c29d7 - [lldb][test] Skip the API tests a WebAssembly target cannot support (#213788)
via lldb-commits
lldb-commits at lists.llvm.org
Tue Aug 4 08:04:11 PDT 2026
Author: Jonas Devlieghere
Date: 2026-08-04T08:04:06-07:00
New Revision: 01c29d71bdcce48d499e34223d1866fedee9a83b
URL: https://github.com/llvm/llvm-project/commit/01c29d71bdcce48d499e34223d1866fedee9a83b
DIFF: https://github.com/llvm/llvm-project/commit/01c29d71bdcce48d499e34223d1866fedee9a83b.diff
LOG: [lldb][test] Skip the API tests a WebAssembly target cannot support (#213788)
This is the final batch of skips. Together with a handful of local
changes to LLDB and WAMR, the test suite now passes when targeting
WebAssembly. Each test has a short comment explaining why it's skipped.
Added:
Modified:
lldb/test/API/commands/command/nested_alias/TestNestedAlias.py
lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py
lldb/test/API/commands/platform/basic/TestPlatformCommand.py
lldb/test/API/commands/process/launch/TestProcessLaunch.py
lldb/test/API/commands/settings/TestSettings.py
lldb/test/API/commands/settings/quoting/TestQuoting.py
lldb/test/API/commands/statistics/basic/TestStats.py
lldb/test/API/commands/target/basic/TestTargetCommand.py
lldb/test/API/driver/quit_speed/TestQuitWithProcess.py
lldb/test/API/functionalities/breakpoint/breakpoint_locations/after_rebuild/TestLocationsAfterRebuild.py
lldb/test/API/functionalities/breakpoint/thread_plan_user_breakpoint/TestThreadPlanUserBreakpoint.py
lldb/test/API/functionalities/bt-interrupt/TestInterruptBacktrace.py
lldb/test/API/functionalities/expr-result-var/TestCPPExprResult.py
lldb/test/API/functionalities/inferior-assert/TestInferiorAssert.py
lldb/test/API/functionalities/multiple-slides/TestMultipleSlides.py
lldb/test/API/functionalities/scripted_frame_provider/runlock_reentrant_deadlock/TestRunLockReentrantDeadlock.py
lldb/test/API/functionalities/scripted_frame_provider/was_hit_deadlock/TestWasHitWithFrameProviderDeadlock.py
lldb/test/API/functionalities/statusline/TestStatusline.py
lldb/test/API/functionalities/thread/jump/TestThreadJump.py
lldb/test/API/lang/c/const_variables/TestConstVariables.py
lldb/test/API/lang/c/inlines/TestRedefinitionsInInlines.py
lldb/test/API/lang/c/set_values/TestSetValues.py
lldb/test/API/lang/c/stepping/TestStepAndBreakpoints.py
lldb/test/API/lang/cpp/dynamic-value/TestDynamicValue.py
lldb/test/API/lang/cpp/extern_c/TestExternCSymbols.py
lldb/test/API/lang/cpp/function-local-class/TestCppFunctionLocalClass.py
lldb/test/API/lang/cpp/template-arguments/TestCppTemplateArguments.py
lldb/test/API/lang/cpp/template/TestTemplateArgs.py
lldb/test/API/python_api/find_in_memory/TestFindInMemory.py
lldb/test/API/python_api/find_in_memory/TestFindRangesInMemory.py
lldb/test/API/python_api/frame/TestFrames.py
lldb/test/API/python_api/persistent_decls/TestPersistentDecls.py
lldb/test/API/python_api/process/TestProcessAPI.py
lldb/test/API/python_api/process/cancel_attach/TestCancelAttach.py
lldb/test/API/python_api/target/TestTargetAPI.py
lldb/test/API/python_api/thread/TestThreadAPI.py
lldb/test/API/python_api/value/change_ptr/TestChangePtr.py
lldb/test/API/python_api/value/change_values/TestChangeValueAPI.py
lldb/test/API/tools/lldb-dap/attach-commands/TestDAP_attachCommands.py
lldb/test/API/tools/lldb-dap/attach/TestDAP_attachByPortNum.py
lldb/test/API/tools/lldb-dap/console/TestDAP_console.py
lldb/test/API/tools/lldb-dap/evaluate/TestDAP_evaluate.py
lldb/test/API/tools/lldb-dap/invalidated-event/TestDAP_invalidatedEvent.py
lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_cwd.py
lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_shellExpandArguments_enabled.py
lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_stdio_redirection_and_console.py
lldb/test/API/tools/lldb-dap/launch/io/TestDAP_launch_io_integratedTerminal.py
lldb/test/API/tools/lldb-dap/locations/TestDAP_locations.py
lldb/test/API/tools/lldb-dap/memory/TestDAP_memory.py
lldb/test/API/tools/lldb-dap/module/TestDAP_module.py
lldb/test/API/tools/lldb-dap/optimized/TestDAP_optimized.py
lldb/test/API/tools/lldb-dap/output/TestDAP_output.py
lldb/test/API/tools/lldb-dap/restart/TestDAP_restart_console.py
lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py
lldb/test/API/tools/lldb-dap/stackTraceMissingFunctionName/TestDAP_stackTraceMissingFunctionName.py
lldb/test/API/tools/lldb-dap/stopped-events/TestDAP_stopped_events.py
lldb/test/API/tools/lldb-dap/variables/children/TestDAP_variables_children.py
lldb/test/API/tools/lldb-server/cached-memory-region-info/TestCachedMemoryRegionInfo.py
Removed:
################################################################################
diff --git a/lldb/test/API/commands/command/nested_alias/TestNestedAlias.py b/lldb/test/API/commands/command/nested_alias/TestNestedAlias.py
index 0919caa7d0056..31670a7780576 100644
--- a/lldb/test/API/commands/command/nested_alias/TestNestedAlias.py
+++ b/lldb/test/API/commands/command/nested_alias/TestNestedAlias.py
@@ -4,6 +4,7 @@
import lldb
+from lldbsuite.test.decorators import skipIfWasm
from lldbsuite.test.lldbtest import *
import lldbsuite.test.lldbutil as lldbutil
@@ -17,6 +18,7 @@ def setUp(self):
# Find the line number to break inside main().
self.line = line_number("main.cpp", "// break here")
+ @skipIfWasm # the test reads memory at the address an expression computes
def test_nested_alias(self):
"""Test that an alias can reference other aliases without crashing."""
self.build()
diff --git a/lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py b/lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py
index 1f943c634df6d..08f5bc4a4db69 100644
--- a/lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py
+++ b/lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py
@@ -14,6 +14,7 @@
class FrameRecognizerTestCase(TestBase):
NO_DEBUG_INFO_TESTCASE = True
+ @skipIfWasm # the recognizer reads the arguments from $argN, and Wasm has no argument registers
def test_frame_recognizer_1(self):
self.build()
exe = self.getBuildArtifact("a.out")
@@ -162,6 +163,7 @@ def test_frame_recognizer_1(self):
substrs=['*a = 78'])
"""
+ @skipIfWasm # the recognizer reads the arguments from $argN, and Wasm has no argument registers
def test_recognized_args_filtered_by_name(self):
"""Test that 'frame variable <name>' only prints matching recognized args."""
self.build()
diff --git a/lldb/test/API/commands/platform/basic/TestPlatformCommand.py b/lldb/test/API/commands/platform/basic/TestPlatformCommand.py
index 03a9c6f7a8eba..19dc5df5bb809 100644
--- a/lldb/test/API/commands/platform/basic/TestPlatformCommand.py
+++ b/lldb/test/API/commands/platform/basic/TestPlatformCommand.py
@@ -8,6 +8,7 @@
from lldbsuite.test import lldbutil
+ at skipIfWasm # a platform command needs a connection to the host it runs on
class PlatformCommandTestCase(TestBase):
NO_DEBUG_INFO_TESTCASE = True
diff --git a/lldb/test/API/commands/process/launch/TestProcessLaunch.py b/lldb/test/API/commands/process/launch/TestProcessLaunch.py
index 28de5bc0623d0..788a9be55bebd 100644
--- a/lldb/test/API/commands/process/launch/TestProcessLaunch.py
+++ b/lldb/test/API/commands/process/launch/TestProcessLaunch.py
@@ -116,6 +116,7 @@ def test_set_working_dir_nonexisting(self):
)
@skipIfRemote
+ @skipIfWasm # WASI gives the inferior no working directory and no file system
def test_set_working_dir_existing(self):
"""Test that '-w dir' sets the working dir when running the inferior."""
d = {"CXX_SOURCES": "print_cwd.cpp"}
@@ -210,6 +211,7 @@ def test_environment_with_special_char(self):
self.assertState(process.GetState(), lldb.eStateExited, PROCESS_EXITED)
@skipIfRemote
+ @skipIfWasm # WASI gives the inferior no working directory and no file system
def test_target_launch_working_dir_prop(self):
"""Test that the setting `target.launch-working-dir` is correctly used when launching a process."""
d = {"CXX_SOURCES": "print_cwd.cpp"}
diff --git a/lldb/test/API/commands/settings/TestSettings.py b/lldb/test/API/commands/settings/TestSettings.py
index d71c077839666..ec27927f3e529 100644
--- a/lldb/test/API/commands/settings/TestSettings.py
+++ b/lldb/test/API/commands/settings/TestSettings.py
@@ -406,10 +406,12 @@ def test_jit_engine_setting(self):
self.expect("settings set target.jit-engine bogus", error=True)
@skipIfDarwinEmbedded # <rdar://problem/34446098> debugserver on ios etc can't write files
+ @skipIfWasm # WASI gives the inferior no working directory and no file system
def test_run_args_and_env_vars(self):
self.do_test_run_args_and_env_vars(use_launchsimple=False)
@skipIfDarwinEmbedded # <rdar://problem/34446098> debugserver on ios etc can't write files
+ @skipIfWasm # WASI gives the inferior no working directory and no file system
def test_launchsimple_args_and_env_vars(self):
self.do_test_run_args_and_env_vars(use_launchsimple=True)
@@ -490,6 +492,7 @@ def do_test_run_args_and_env_vars(self, use_launchsimple):
)
@skipIfRemote # it doesn't make sense to send host env to remote target
+ @skipIfWasm # WASI gives the inferior no working directory and no file system
def test_pass_host_env_vars(self):
"""Test that the host env vars are passed to the launched process."""
self.build()
@@ -612,6 +615,7 @@ def unset_env_variables():
)
@skipIfDarwinEmbedded # <rdar://problem/34446098> debugserver on ios etc can't write files
+ @skipIfWasm # WASI gives the inferior no working directory and no file system
def test_set_error_output_path(self):
"""Test that setting target.error/output-path for the launched process works."""
self.build()
@@ -666,6 +670,7 @@ def test_set_error_output_path(self):
)
@skipIfDarwinEmbedded # <rdar://problem/34446098> debugserver on ios etc can't write files
+ @skipIfWasm # WASI gives the inferior no working directory and no file system
def test_same_error_output_path(self):
"""Test that setting target.error and output-path to the same file path for the launched process works."""
self.build()
diff --git a/lldb/test/API/commands/settings/quoting/TestQuoting.py b/lldb/test/API/commands/settings/quoting/TestQuoting.py
index 60eeeead4e0a4..ba12ef5ae1552 100644
--- a/lldb/test/API/commands/settings/quoting/TestQuoting.py
+++ b/lldb/test/API/commands/settings/quoting/TestQuoting.py
@@ -8,6 +8,7 @@
from lldbsuite.test import lldbutil
+ at skipIfWasm # WASI gives the inferior no working directory and no file system
class SettingsCommandTestCase(TestBase):
output_file_name = "output.txt"
diff --git a/lldb/test/API/commands/statistics/basic/TestStats.py b/lldb/test/API/commands/statistics/basic/TestStats.py
index a32b8feecc5cf..97421a928308c 100644
--- a/lldb/test/API/commands/statistics/basic/TestStats.py
+++ b/lldb/test/API/commands/statistics/basic/TestStats.py
@@ -81,6 +81,7 @@ def get_command_stats(self, debug_stats):
return debug_stats["commands"]
return None
+ @skipIfWasm # no expression evaluation
def test_expressions_frame_var_counts(self):
self.build()
lldbutil.run_to_source_breakpoint(
diff --git a/lldb/test/API/commands/target/basic/TestTargetCommand.py b/lldb/test/API/commands/target/basic/TestTargetCommand.py
index dd6bdb234108a..fcb50effb77fe 100644
--- a/lldb/test/API/commands/target/basic/TestTargetCommand.py
+++ b/lldb/test/API/commands/target/basic/TestTargetCommand.py
@@ -38,6 +38,7 @@ def buildAll(self):
self.build(dictionary=dc)
self.addTearDownCleanup(dictionary=dc)
+ @skipIfWasm # a null dereference is a valid read in a Wasm linear memory, so the inferior does not fault
def test_target_command(self):
"""Test some target commands: create, list, select."""
self.buildAll()
@@ -563,6 +564,7 @@ def test_target_modules_search_paths_query(self):
@expectedFailureAll(
oslist=["freebsd"], bugnumber="github.com/llvm/llvm-project/issues/56079"
)
+ @skipIfWasm # a Wasm executable statically links the C library, so its debug info holds many ints
def test_target_modules_type(self):
self.buildB()
self.runCmd("file " + self.getBuildArtifact("b.out"), CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/API/driver/quit_speed/TestQuitWithProcess.py b/lldb/test/API/driver/quit_speed/TestQuitWithProcess.py
index 0e0f238fa394b..c5b0142ccb168 100644
--- a/lldb/test/API/driver/quit_speed/TestQuitWithProcess.py
+++ b/lldb/test/API/driver/quit_speed/TestQuitWithProcess.py
@@ -35,6 +35,7 @@ def test_run_quit(self):
child.expect(pexpect.EOF, timeout=30)
@skipIfAsan
+ @skipIfWasm # quitting detaches from the runtime, so there is nothing to confirm
def test_run_quit_with_prompt(self):
"""Test that the lldb driver's batch mode works correctly with trailing space in confimation."""
import pexpect
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 b0d00d49d4839..6e1c9452a6833 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
@@ -7,7 +7,7 @@
import lldb
import lldbsuite.test.lldbutil as lldbutil
from lldbsuite.test.lldbtest import *
-from lldbsuite.test.decorators import skipIfWindows
+from lldbsuite.test.decorators import skipIfWasm, skipIfWindows
import os
@@ -20,6 +20,7 @@ class TestLocationsAfterRebuild(TestBase):
# On Windows we cannot remove a file that lldb is debugging.
@skipIfWindows
+ @skipIfWasm # a WASI executable wraps main, so a breakpoint on it takes two locations
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/thread_plan_user_breakpoint/TestThreadPlanUserBreakpoint.py b/lldb/test/API/functionalities/breakpoint/thread_plan_user_breakpoint/TestThreadPlanUserBreakpoint.py
index 3f367f6e183f9..1cae52a0f74b1 100644
--- a/lldb/test/API/functionalities/breakpoint/thread_plan_user_breakpoint/TestThreadPlanUserBreakpoint.py
+++ b/lldb/test/API/functionalities/breakpoint/thread_plan_user_breakpoint/TestThreadPlanUserBreakpoint.py
@@ -102,6 +102,7 @@ def set_up_breakpoints_callback(self, condition, bp):
# Set breakpoint callback to return True/False
bp.SetScriptCallbackBody("return %s" % condition)
+ @skipIfWasm # a step on Wasm ends at the breakpoint's address without hitting it
def test_thread_plan_user_breakpoint_conditional_active(self):
# Test with breakpoints having true condition
self.check_thread_plan_user_breakpoint(
@@ -114,6 +115,7 @@ def test_thread_plan_user_breakpoint_conditional_inactive(self):
condition=False, set_up_breakpoint_func=self.set_up_breakpoints_condition
)
+ @skipIfWasm # a step on Wasm ends at the breakpoint's address without hitting it
def test_thread_plan_user_breakpoint_unconditional_active(self):
# Test with breakpoints enabled unconditionally
self.check_thread_plan_user_breakpoint(
@@ -126,6 +128,7 @@ def test_thread_plan_user_breakpoint_unconditional_inactive(self):
condition=False, set_up_breakpoint_func=self.set_up_breakpoints_enable
)
+ @skipIfWasm # a step on Wasm ends at the breakpoint's address without hitting it
def test_thread_plan_user_breakpoint_callback_active(self):
# Test with breakpoints with callback that returns 'True'
self.check_thread_plan_user_breakpoint(
diff --git a/lldb/test/API/functionalities/bt-interrupt/TestInterruptBacktrace.py b/lldb/test/API/functionalities/bt-interrupt/TestInterruptBacktrace.py
index dc99538a742f8..e0be461548fd6 100644
--- a/lldb/test/API/functionalities/bt-interrupt/TestInterruptBacktrace.py
+++ b/lldb/test/API/functionalities/bt-interrupt/TestInterruptBacktrace.py
@@ -14,6 +14,7 @@ class TestInterruptingBacktrace(TestBase):
@expectedFailureAll(oslist=["windows"], archs=["aarch64"])
@skipIf(oslist=["linux"], archs=["arm$"])
+ @skipIfWasm # the runtime ends the process on a stack exhaustion trap without stopping
def test_backtrace_interrupt(self):
"""Use RequestInterrupt followed by stack operations
to ensure correct interrupt behavior for stacks."""
diff --git a/lldb/test/API/functionalities/expr-result-var/TestCPPExprResult.py b/lldb/test/API/functionalities/expr-result-var/TestCPPExprResult.py
index 7bd4bb582a4a3..63a53605aea2b 100644
--- a/lldb/test/API/functionalities/expr-result-var/TestCPPExprResult.py
+++ b/lldb/test/API/functionalities/expr-result-var/TestCPPExprResult.py
@@ -10,6 +10,7 @@
from lldbsuite.test import lldbutil
+ at skipIfWasm # no expression evaluation
class TestCPPResultVariables(TestBase):
NO_DEBUG_INFO_TESTCASE = True
SHARED_BUILD_TESTCASE = False
diff --git a/lldb/test/API/functionalities/inferior-assert/TestInferiorAssert.py b/lldb/test/API/functionalities/inferior-assert/TestInferiorAssert.py
index 6bbf906fdde72..835358f068509 100644
--- a/lldb/test/API/functionalities/inferior-assert/TestInferiorAssert.py
+++ b/lldb/test/API/functionalities/inferior-assert/TestInferiorAssert.py
@@ -7,6 +7,7 @@
from lldbsuite.test.lldbtest import *
+ at skipIfWasm # assert() ends a WASI process, there is no signal to stop on
class AssertingInferiorTestCase(TestBase):
@expectedFailureAll(
oslist=["windows"],
diff --git a/lldb/test/API/functionalities/multiple-slides/TestMultipleSlides.py b/lldb/test/API/functionalities/multiple-slides/TestMultipleSlides.py
index 5fd2b767a6237..abb83cd6235d0 100644
--- a/lldb/test/API/functionalities/multiple-slides/TestMultipleSlides.py
+++ b/lldb/test/API/functionalities/multiple-slides/TestMultipleSlides.py
@@ -12,6 +12,7 @@
class MultipleSlidesTestCase(TestBase):
NO_DEBUG_INFO_TESTCASE = True
+ @skipIfWasm # a Wasm section sits at a fixed address in its address space, so it cannot be slid
def test_mulitple_slides(self):
"""Test that a binary can be slid multiple times correctly."""
self.build()
diff --git a/lldb/test/API/functionalities/scripted_frame_provider/runlock_reentrant_deadlock/TestRunLockReentrantDeadlock.py b/lldb/test/API/functionalities/scripted_frame_provider/runlock_reentrant_deadlock/TestRunLockReentrantDeadlock.py
index b4dfdf779b390..36fa32c5679a6 100644
--- a/lldb/test/API/functionalities/scripted_frame_provider/runlock_reentrant_deadlock/TestRunLockReentrantDeadlock.py
+++ b/lldb/test/API/functionalities/scripted_frame_provider/runlock_reentrant_deadlock/TestRunLockReentrantDeadlock.py
@@ -33,6 +33,7 @@ class TestRunLockReentrantDeadlock(TestBase):
bugnumber="llvm.org/pr24528 (scripted breakpoint resolvers fail on "
"Windows; same XFAIL as the sibling tests in this directory)",
)
+ @skipIfWasm # the was_hit callback increments the value with an expression
def test_runlock_reentrant_no_deadlock(self):
"""
Test that a frame provider calling SBFrame.IsValid from
diff --git a/lldb/test/API/functionalities/scripted_frame_provider/was_hit_deadlock/TestWasHitWithFrameProviderDeadlock.py b/lldb/test/API/functionalities/scripted_frame_provider/was_hit_deadlock/TestWasHitWithFrameProviderDeadlock.py
index febbef49de9e7..c673d29f7009d 100644
--- a/lldb/test/API/functionalities/scripted_frame_provider/was_hit_deadlock/TestWasHitWithFrameProviderDeadlock.py
+++ b/lldb/test/API/functionalities/scripted_frame_provider/was_hit_deadlock/TestWasHitWithFrameProviderDeadlock.py
@@ -31,6 +31,7 @@ class TestWasHitWithFrameProviderDeadlock(TestBase):
NO_DEBUG_INFO_TESTCASE = True
@expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24528")
+ @skipIfWasm # the was_hit callback increments the value with an expression
def test_was_hit_with_frame_provider_no_deadlock(self):
"""
Test that a scripted breakpoint doing EvaluateExpression in was_hit
diff --git a/lldb/test/API/functionalities/statusline/TestStatusline.py b/lldb/test/API/functionalities/statusline/TestStatusline.py
index 75792c009cc39..a035b5e20cd56 100644
--- a/lldb/test/API/functionalities/statusline/TestStatusline.py
+++ b/lldb/test/API/functionalities/statusline/TestStatusline.py
@@ -279,6 +279,7 @@ def test_target_symbols_add(self):
@skipIfDarwin
@skipIfLinux # https://github.com/llvm/llvm-project/issues/154763
@add_test_categories(["lldb-server"])
+ @skipIfWasm # the test drives a native debug server for the program
def test_modulelist_deadlock(self):
"""Regression test for a deadlock that occurs when the status line is enabled before connecting
to a gdb-remote server.
diff --git a/lldb/test/API/functionalities/thread/jump/TestThreadJump.py b/lldb/test/API/functionalities/thread/jump/TestThreadJump.py
index 42c4fcf5523ce..6ad2266a64c2f 100644
--- a/lldb/test/API/functionalities/thread/jump/TestThreadJump.py
+++ b/lldb/test/API/functionalities/thread/jump/TestThreadJump.py
@@ -9,6 +9,7 @@
from lldbsuite.test import lldbutil
+ at skipIfWasm # Wasm has no writable PC to jump
class ThreadJumpTestCase(TestBase):
def setUp(self):
TestBase.setUp(self)
diff --git a/lldb/test/API/lang/c/const_variables/TestConstVariables.py b/lldb/test/API/lang/c/const_variables/TestConstVariables.py
index 70d0825cf7330..45f213f96eb1c 100644
--- a/lldb/test/API/lang/c/const_variables/TestConstVariables.py
+++ b/lldb/test/API/lang/c/const_variables/TestConstVariables.py
@@ -7,6 +7,7 @@
from lldbsuite.test import lldbutil
+ at skipIfWasm # no expression evaluation
class ConstVariableTestCase(TestBase):
@expectedFailureAll(oslist=["freebsd", "linux"], compiler="icc")
@expectedFailureAll(archs=["mips", "mipsel", "mips64", "mips64el"])
diff --git a/lldb/test/API/lang/c/inlines/TestRedefinitionsInInlines.py b/lldb/test/API/lang/c/inlines/TestRedefinitionsInInlines.py
index 062fd88f7d272..0deeeba56254e 100644
--- a/lldb/test/API/lang/c/inlines/TestRedefinitionsInInlines.py
+++ b/lldb/test/API/lang/c/inlines/TestRedefinitionsInInlines.py
@@ -9,6 +9,7 @@
class TestRedefinitionsInInlines(TestBase):
# https://github.com/llvm/llvm-project/issues/28219
@skipIf(compiler="clang", compiler_version=["<", "3.5"])
+ @skipIfWasm # no expression evaluation
def test(self):
self.source = "main.c"
self.build()
diff --git a/lldb/test/API/lang/c/set_values/TestSetValues.py b/lldb/test/API/lang/c/set_values/TestSetValues.py
index e0813734403a0..822bbd68dc92c 100644
--- a/lldb/test/API/lang/c/set_values/TestSetValues.py
+++ b/lldb/test/API/lang/c/set_values/TestSetValues.py
@@ -7,6 +7,7 @@
from lldbsuite.test import lldbutil
+ at skipIfWasm # no expression evaluation
class SetValuesTestCase(TestBase):
def setUp(self):
# Call super's setUp().
diff --git a/lldb/test/API/lang/c/stepping/TestStepAndBreakpoints.py b/lldb/test/API/lang/c/stepping/TestStepAndBreakpoints.py
index 9fe787bcaa9fb..3e4cb376ad704 100644
--- a/lldb/test/API/lang/c/stepping/TestStepAndBreakpoints.py
+++ b/lldb/test/API/lang/c/stepping/TestStepAndBreakpoints.py
@@ -19,6 +19,7 @@ def setUp(self):
@expectedFailureAll(oslist=["linux"], archs=no_match(["i386", "x86_64"]))
@expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24777")
@expectedFailureNetBSD
+ @skipIfWasm # no expression evaluation
def test_and_python_api(self):
"""Test stepping over vrs. hitting breakpoints & subsequent stepping in various forms."""
self.build()
diff --git a/lldb/test/API/lang/cpp/dynamic-value/TestDynamicValue.py b/lldb/test/API/lang/cpp/dynamic-value/TestDynamicValue.py
index efbbb8a6d3c1e..2c667c866d914 100644
--- a/lldb/test/API/lang/cpp/dynamic-value/TestDynamicValue.py
+++ b/lldb/test/API/lang/cpp/dynamic-value/TestDynamicValue.py
@@ -284,6 +284,7 @@ def test_from_forward_decl(self):
@expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24663")
@expectedFailureAll(archs=["arm$"]) # Minidump saving not implemented
@skipIf(archs=["arm64e"]) # arm64e incompatible with minidump
+ @skipIfWasm # No core file format for Wasm
def test_from_core_file(self):
"""Test fetching C++ dynamic values from core files. Specifically, test
that we can determine the dynamic type of the value if the core file
diff --git a/lldb/test/API/lang/cpp/extern_c/TestExternCSymbols.py b/lldb/test/API/lang/cpp/extern_c/TestExternCSymbols.py
index c8308c16011e0..8c757524d1531 100644
--- a/lldb/test/API/lang/cpp/extern_c/TestExternCSymbols.py
+++ b/lldb/test/API/lang/cpp/extern_c/TestExternCSymbols.py
@@ -1,4 +1,6 @@
from lldbsuite.test import lldbinline
from lldbsuite.test import decorators
-lldbinline.MakeInlineTest(__file__, globals())
+lldbinline.MakeInlineTest(
+ __file__, globals(), decorators=[decorators.skipIfWasm] # no expression evaluation
+)
diff --git a/lldb/test/API/lang/cpp/function-local-class/TestCppFunctionLocalClass.py b/lldb/test/API/lang/cpp/function-local-class/TestCppFunctionLocalClass.py
index ab81411a9f230..5cd9f37e3d92d 100644
--- a/lldb/test/API/lang/cpp/function-local-class/TestCppFunctionLocalClass.py
+++ b/lldb/test/API/lang/cpp/function-local-class/TestCppFunctionLocalClass.py
@@ -4,6 +4,7 @@
from lldbsuite.test import lldbutil
+ at skipIfWasm # no expression evaluation
class TestCase(TestBase):
@no_debug_info_test
def test(self):
diff --git a/lldb/test/API/lang/cpp/template-arguments/TestCppTemplateArguments.py b/lldb/test/API/lang/cpp/template-arguments/TestCppTemplateArguments.py
index 0a757d3368a44..4dd39148c89d3 100644
--- a/lldb/test/API/lang/cpp/template-arguments/TestCppTemplateArguments.py
+++ b/lldb/test/API/lang/cpp/template-arguments/TestCppTemplateArguments.py
@@ -8,6 +8,7 @@
class TestCase(TestBase):
@no_debug_info_test
@skipIf(compiler="clang", compiler_version=["<", "20.0"])
+ @skipIfWasm # wasm32 supports neither _Float16 nor __bf16
def test(self):
self.build()
target = self.dbg.CreateTarget(self.getBuildArtifact("a.out"))
diff --git a/lldb/test/API/lang/cpp/template/TestTemplateArgs.py b/lldb/test/API/lang/cpp/template/TestTemplateArgs.py
index c32413873d1ca..ae2e8b352a7bd 100644
--- a/lldb/test/API/lang/cpp/template/TestTemplateArgs.py
+++ b/lldb/test/API/lang/cpp/template/TestTemplateArgs.py
@@ -11,6 +11,7 @@
from lldbsuite.test import lldbutil
+ at skipIfWasm # no expression evaluation
class TemplateArgsTestCase(TestBase):
SHARED_BUILD_TESTCASE = False
def prepareProcess(self):
diff --git a/lldb/test/API/python_api/find_in_memory/TestFindInMemory.py b/lldb/test/API/python_api/find_in_memory/TestFindInMemory.py
index 4a2b312321566..f4567130c6452 100644
--- a/lldb/test/API/python_api/find_in_memory/TestFindInMemory.py
+++ b/lldb/test/API/python_api/find_in_memory/TestFindInMemory.py
@@ -3,6 +3,7 @@
"""
import lldb
+from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
from address_ranges_helper import *
@@ -27,6 +28,7 @@ def setUp(self):
)
self.assertTrue(self.bp.IsValid())
+ @skipIfWasm # Wasm exposes no stack pointer register
def test_check_stack_pointer(self):
"""Make sure the 'stack_pointer' variable lives on the stack"""
self.assertTrue(self.process, PROCESS_IS_VALID)
diff --git a/lldb/test/API/python_api/find_in_memory/TestFindRangesInMemory.py b/lldb/test/API/python_api/find_in_memory/TestFindRangesInMemory.py
index 895c527430f21..b34f4313ff990 100644
--- a/lldb/test/API/python_api/find_in_memory/TestFindRangesInMemory.py
+++ b/lldb/test/API/python_api/find_in_memory/TestFindRangesInMemory.py
@@ -3,6 +3,7 @@
"""
import lldb
+from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
from address_ranges_helper import *
@@ -43,6 +44,7 @@ def test_find_ranges_in_memory_two_matches(self):
self.assertSuccess(error)
self.assertEqual(matches.GetSize(), 2)
+ @skipIfWasm # Wasm linear memory is one region, which holds more than the stack
def test_find_ranges_in_memory_one_match(self):
"""Make sure exactly one match exists in the heap memory and the right address ranges are provided"""
self.assertTrue(self.process, PROCESS_IS_VALID)
@@ -61,6 +63,7 @@ def test_find_ranges_in_memory_one_match(self):
self.assertSuccess(error)
self.assertEqual(matches.GetSize(), 1)
+ @skipIfWasm # Wasm linear memory is one region, which holds more than the stack
def test_find_ranges_in_memory_one_match_multiple_ranges(self):
"""Make sure exactly one match exists in the heap memory and multiple address ranges are provided"""
self.assertTrue(self.process, PROCESS_IS_VALID)
diff --git a/lldb/test/API/python_api/frame/TestFrames.py b/lldb/test/API/python_api/frame/TestFrames.py
index 0ec12206024ab..93ef40b49cda9 100644
--- a/lldb/test/API/python_api/frame/TestFrames.py
+++ b/lldb/test/API/python_api/frame/TestFrames.py
@@ -12,6 +12,7 @@
class FrameAPITestCase(TestBase):
+ @skipIfWasm # Wasm exposes no register sets, so there is no pc or sp register to read
def test_get_arg_vals_for_call_stack(self):
"""Exercise SBFrame.GetVariables() API to get argument vals."""
self.build()
diff --git a/lldb/test/API/python_api/persistent_decls/TestPersistentDecls.py b/lldb/test/API/python_api/persistent_decls/TestPersistentDecls.py
index 7036bbe521dae..12c64871f03bb 100644
--- a/lldb/test/API/python_api/persistent_decls/TestPersistentDecls.py
+++ b/lldb/test/API/python_api/persistent_decls/TestPersistentDecls.py
@@ -6,9 +6,11 @@
import lldb
import lldbsuite.test.lldbutil as lldbutil
+from lldbsuite.test.decorators import skipIfWasm
from lldbsuite.test.lldbtest import *
+ at skipIfWasm # no expression evaluation
class TestPersistentDecls(TestBase):
NO_DEBUG_INFO_TESTCASE = True
diff --git a/lldb/test/API/python_api/process/TestProcessAPI.py b/lldb/test/API/python_api/process/TestProcessAPI.py
index 6fb1c9247b291..2cb3c9c314989 100644
--- a/lldb/test/API/python_api/process/TestProcessAPI.py
+++ b/lldb/test/API/python_api/process/TestProcessAPI.py
@@ -374,6 +374,7 @@ def test_get_num_supported_hardware_watchpoints(self):
@no_debug_info_test
@skipIfRemote
+ @skipIfWasm # the Wasm platform cannot look a process up by its id
def test_get_process_info(self):
"""Test SBProcess::GetProcessInfo() API with a locally launched process."""
self.build()
@@ -463,6 +464,7 @@ def test_get_process_info(self):
process_info.GetParentProcessID()
@expectedFailureWindows # Not yet implemented.
+ @skipIfWasm # the Wasm platform cannot look a process up by its id
def test_get_process_info_arguments(self):
"""Test SBProcessInfo Arguments returns the correct values."""
self.build()
@@ -495,6 +497,7 @@ def test_get_process_info_arguments(self):
self.assertEqual(process_info.GetArgumentAtIndex(3), "מזל טוב")
self.assertEqual(process_info.GetArgumentAtIndex(4), None)
+ @skipIfWasm # the test reads the allocation back with an expression
def test_allocate_deallocate_memory(self):
"""Test Python SBProcess.AllocateMemory() and SBProcess.DeallocateMemory() APIs."""
self.build()
diff --git a/lldb/test/API/python_api/process/cancel_attach/TestCancelAttach.py b/lldb/test/API/python_api/process/cancel_attach/TestCancelAttach.py
index 7bb3bda7bef89..46c0f93a89309 100644
--- a/lldb/test/API/python_api/process/cancel_attach/TestCancelAttach.py
+++ b/lldb/test/API/python_api/process/cancel_attach/TestCancelAttach.py
@@ -15,6 +15,7 @@ class AttachCancelTestCase(TestBase):
NO_DEBUG_INFO_TESTCASE = True
@skipIfRemote
+ @skipIfWasm # the Wasm platform cannot attach to a process by name
@skipIf(
hostoslist=["windows", "linux"],
bugnumber="https://github.com/llvm/llvm-project/issues/115618",
diff --git a/lldb/test/API/python_api/target/TestTargetAPI.py b/lldb/test/API/python_api/target/TestTargetAPI.py
index a6ab745e0b3b9..26fe3370d8613 100644
--- a/lldb/test/API/python_api/target/TestTargetAPI.py
+++ b/lldb/test/API/python_api/target/TestTargetAPI.py
@@ -111,6 +111,7 @@ def test_get_arch_name(self):
"Arch name is equal to the first item of the triple",
)
+ @skipIfWasm # there is no ABI plugin for Wasm to name
def test_get_ABIName(self):
d = {"EXE": "b.out"}
self.build(dictionary=d)
@@ -134,6 +135,7 @@ def test_get_ABIName(self):
abi_pre_launch, abi_after_launch, "ABI's match before and during run"
)
+ @skipIfWasm # zero is a valid address in a Wasm linear memory, so a read of it succeeds
def test_read_memory(self):
d = {"EXE": "b.out"}
self.build(dictionary=d)
@@ -498,6 +500,7 @@ def resolve_symbol_context_with_address(self):
)
@skipIfRemote
+ @skipIfWasm # the default architecture is the host's, which no Wasm module matches
def test_default_arch(self):
"""Test the other two target create methods using LLDB_ARCH_DEFAULT."""
self.build()
diff --git a/lldb/test/API/python_api/thread/TestThreadAPI.py b/lldb/test/API/python_api/thread/TestThreadAPI.py
index 6d87e1810106c..0a6a1d01418cc 100644
--- a/lldb/test/API/python_api/thread/TestThreadAPI.py
+++ b/lldb/test/API/python_api/thread/TestThreadAPI.py
@@ -54,6 +54,7 @@ def test_negative_indexing(self):
self.build()
self.validate_negative_indexing()
+ @skipIfWasm # the test calls a function with an expression
def test_StepInstruction(self):
"""Test that StepInstruction preserves the plan stack."""
self.build()
diff --git a/lldb/test/API/python_api/value/change_ptr/TestChangePtr.py b/lldb/test/API/python_api/value/change_ptr/TestChangePtr.py
index f68eeb8404d70..92c0e06c229c0 100644
--- a/lldb/test/API/python_api/value/change_ptr/TestChangePtr.py
+++ b/lldb/test/API/python_api/value/change_ptr/TestChangePtr.py
@@ -5,6 +5,7 @@
class ChangePtrTest(TestBase):
+ @skipIfWasm # the test checks the address of a persistent expression result
def test(self):
self.build()
diff --git a/lldb/test/API/python_api/value/change_values/TestChangeValueAPI.py b/lldb/test/API/python_api/value/change_values/TestChangeValueAPI.py
index d3c8935e2978d..3b5365c2169e3 100644
--- a/lldb/test/API/python_api/value/change_values/TestChangeValueAPI.py
+++ b/lldb/test/API/python_api/value/change_values/TestChangeValueAPI.py
@@ -23,6 +23,7 @@ def setUp(self):
@expectedFlakeyLinux("llvm.org/pr25652")
@expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24772")
+ @skipIfWasm # Wasm exposes no stack pointer register
def test_change_value(self):
"""Exercise the SBValue::SetValueFromCString API."""
d = {"EXE": self.exe_name}
diff --git a/lldb/test/API/tools/lldb-dap/attach-commands/TestDAP_attachCommands.py b/lldb/test/API/tools/lldb-dap/attach-commands/TestDAP_attachCommands.py
index 0cfbb30f02c31..97ee08c6fab14 100644
--- a/lldb/test/API/tools/lldb-dap/attach-commands/TestDAP_attachCommands.py
+++ b/lldb/test/API/tools/lldb-dap/attach-commands/TestDAP_attachCommands.py
@@ -2,13 +2,14 @@
Test lldb-dap attach commands
"""
-from lldbsuite.test.decorators import skipIfNetBSD
+from lldbsuite.test.decorators import skipIfNetBSD, skipIfWasm
from lldbsuite.test.tools.lldb_dap import DAPTestCaseBase
from lldbsuite.test.tools.lldb_dap.types import AttachArgs, PauseArgs
class TestDAP_attachCommands(DAPTestCaseBase):
@skipIfNetBSD # Hangs on NetBSD as well
+ @skipIfWasm # the test releases the inferior with an expression
def test_commands(self):
"""
Tests the "initCommands", "preRunCommands", "stopCommands",
diff --git a/lldb/test/API/tools/lldb-dap/attach/TestDAP_attachByPortNum.py b/lldb/test/API/tools/lldb-dap/attach/TestDAP_attachByPortNum.py
index fe4f240c404e2..22129996ddd3e 100644
--- a/lldb/test/API/tools/lldb-dap/attach/TestDAP_attachByPortNum.py
+++ b/lldb/test/API/tools/lldb-dap/attach/TestDAP_attachByPortNum.py
@@ -6,7 +6,7 @@
from lldbgdbserverutils import Pipe
from lldbsuite.test import lldbplatformutil
-from lldbsuite.test.decorators import skipIfNetBSD, skipIfWindows
+from lldbsuite.test.decorators import skipIfNetBSD, skipIfWasm, skipIfWindows
from lldbsuite.test.lldbtest import line_number
from lldbsuite.test.tools.lldb_dap import DAPTestCaseBase
from lldbsuite.test.tools.lldb_dap.types import AttachArgs
@@ -26,6 +26,7 @@ def debug_server_start_args() -> List[str]:
return args
+ at skipIfWasm # the test drives a native debug server for the program
class TestDAP_attachByPortNum(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 11e8cf5e8f692..de175b4b5134a 100644
--- a/lldb/test/API/tools/lldb-dap/console/TestDAP_console.py
+++ b/lldb/test/API/tools/lldb-dap/console/TestDAP_console.py
@@ -6,7 +6,7 @@
import os
import unittest
-from lldbsuite.test.decorators import skipIfWindows
+from lldbsuite.test.decorators import skipIfWasm, skipIfWindows
from lldbsuite.test.lldbtest import line_number
from lldbsuite.test.tools.lldb_dap.types import LaunchArgs
from lldbsuite.test.tools.lldb_dap import DAPTestCaseBase, DAPTestSession
@@ -115,6 +115,7 @@ def test_empty_escape_prefix(self):
@skipIfWindows
@skipUnlessPsutil
+ @skipIfWasm # 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/evaluate/TestDAP_evaluate.py b/lldb/test/API/tools/lldb-dap/evaluate/TestDAP_evaluate.py
index 6cb183b3c6ef6..b139593c0cb9e 100644
--- a/lldb/test/API/tools/lldb-dap/evaluate/TestDAP_evaluate.py
+++ b/lldb/test/API/tools/lldb-dap/evaluate/TestDAP_evaluate.py
@@ -5,13 +5,14 @@
import re
from typing import Optional, Union
-from lldbsuite.test.decorators import skipIfWindows
+from lldbsuite.test.decorators import skipIfWasm, skipIfWindows
from lldbsuite.test.lldbtest import line_number
from lldbsuite.test.tools.lldb_dap import DAPTestCaseBase
from lldbsuite.test.tools.lldb_dap.session_helpers import ExpectEval, FrameContext
from lldbsuite.test.tools.lldb_dap.types import EvaluateContext, LaunchArgs, ValueFormat
+ at skipIfWasm # no expression evaluation
class TestDAP_evaluate(DAPTestCaseBase):
# The frame that `assert_eval*` functions calls evaluate in.
_eval_frame: Optional[FrameContext] = None
diff --git a/lldb/test/API/tools/lldb-dap/invalidated-event/TestDAP_invalidatedEvent.py b/lldb/test/API/tools/lldb-dap/invalidated-event/TestDAP_invalidatedEvent.py
index 9fc03f145813c..301873116caaf 100644
--- a/lldb/test/API/tools/lldb-dap/invalidated-event/TestDAP_invalidatedEvent.py
+++ b/lldb/test/API/tools/lldb-dap/invalidated-event/TestDAP_invalidatedEvent.py
@@ -4,12 +4,14 @@
know about it.
"""
+from lldbsuite.test.decorators import skipIfWasm
from lldbsuite.test.lldbtest import line_number
from lldbsuite.test.tools.lldb_dap import DAPTestCaseBase
from lldbsuite.test.tools.lldb_dap.types import LaunchArgs
class TestDAP_invalidatedEvent(DAPTestCaseBase):
+ @skipIfWasm # No ABI plugin for Wasm to set a return value with
def test_invalidated_stack_area_event(self):
"""
Test an invalidated event for the stack area.
diff --git a/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_cwd.py b/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_cwd.py
index 21fac2b785b88..5dba839ae040a 100644
--- a/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_cwd.py
+++ b/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_cwd.py
@@ -4,10 +4,12 @@
import os
+from lldbsuite.test.decorators import skipIfWasm
from lldbsuite.test.tools.lldb_dap.types import LaunchArgs
from lldbsuite.test.tools.lldb_dap import DAPTestCaseBase
+ at skipIfWasm # WASI gives the inferior no working directory and no file system
class TestDAP_launch_cwd(DAPTestCaseBase):
"""
Tests the default launch of a simple program with a current working
diff --git a/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_shellExpandArguments_enabled.py b/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_shellExpandArguments_enabled.py
index b716c3fd24c00..0c5fc58b7ba79 100644
--- a/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_shellExpandArguments_enabled.py
+++ b/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_shellExpandArguments_enabled.py
@@ -4,11 +4,12 @@
import os
-from lldbsuite.test.decorators import expectedFailureAll, skipIfLinux
+from lldbsuite.test.decorators import expectedFailureAll, skipIfLinux, skipIfWasm
from lldbsuite.test.tools.lldb_dap.types import LaunchArgs
from lldbsuite.test.tools.lldb_dap import DAPTestCaseBase
+ at skipIfWasm # a Wasm runtime is handed its arguments directly, with no shell to expand them
class TestDAP_launch_shellExpandArguments_enabled(DAPTestCaseBase):
"""
Tests the default launch of a simple program with shell expansion
diff --git a/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_stdio_redirection_and_console.py b/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_stdio_redirection_and_console.py
index 505f033d0ef30..477bd74aee514 100644
--- a/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_stdio_redirection_and_console.py
+++ b/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_stdio_redirection_and_console.py
@@ -9,6 +9,7 @@
skipIf,
skipIfAsan,
skipIfBuildType,
+ skipIfWasm,
skipIfWindows,
)
from lldbsuite.test.tools.lldb_dap.types import Console, LaunchArgs
@@ -21,6 +22,7 @@ class TestDAP_launch_stdio_redirection_and_console(DAPTestCaseBase):
"""
@skipIfAsan
+ @skipIfWasm # runInTerminal has the client run the program, and a Wasm module is not executable
@skipIfWindows # https://github.com/llvm/llvm-project/issues/198763
@skipIf(oslist=["linux"], archs=no_match(["x86_64"]))
@skipIfBuildType(["debug"])
diff --git a/lldb/test/API/tools/lldb-dap/launch/io/TestDAP_launch_io_integratedTerminal.py b/lldb/test/API/tools/lldb-dap/launch/io/TestDAP_launch_io_integratedTerminal.py
index bf127d8f2d168..9895b83d89d19 100644
--- a/lldb/test/API/tools/lldb-dap/launch/io/TestDAP_launch_io_integratedTerminal.py
+++ b/lldb/test/API/tools/lldb-dap/launch/io/TestDAP_launch_io_integratedTerminal.py
@@ -7,6 +7,7 @@
skipIfAsan,
skipIfBuildType,
skipIfRemote,
+ skipIfWasm,
skipIfWindows,
)
from lldbsuite.test.tools.lldb_dap import DAPTestSession
@@ -17,6 +18,7 @@
@skipIfAsan
@skipIfBuildType(["debug"])
@skipIfWindows
+ at skipIfWasm # runInTerminal has the client run the program, and a Wasm module is not executable
class TestDAP_launch_io_IntegratedTerminal(DAP_launchIO):
console = Console.INTEGRATED_TERMINAL
diff --git a/lldb/test/API/tools/lldb-dap/locations/TestDAP_locations.py b/lldb/test/API/tools/lldb-dap/locations/TestDAP_locations.py
index d2c921fbf39a8..98948714bf08e 100644
--- a/lldb/test/API/tools/lldb-dap/locations/TestDAP_locations.py
+++ b/lldb/test/API/tools/lldb-dap/locations/TestDAP_locations.py
@@ -2,7 +2,7 @@
Test lldb-dap locations request
"""
-from lldbsuite.test.decorators import skipIf, skipIfWindows
+from lldbsuite.test.decorators import skipIf, skipIfWasm, skipIfWindows
from lldbsuite.test.lldbtest import line_number
from lldbsuite.test.tools.lldb_dap import DAPTestCaseBase
from lldbsuite.test.tools.lldb_dap.types import LaunchArgs
@@ -14,6 +14,7 @@ class TestDAP_locations(DAPTestCaseBase):
@skipIf(
bugnumber="https://github.com/llvm/llvm-project/issues/203127", archs=["arm64e"]
)
+ @skipIfWasm # a Wasm function pointer is a table index, not a code address
def test_locations(self):
"""
Tests the 'locations' request.
diff --git a/lldb/test/API/tools/lldb-dap/memory/TestDAP_memory.py b/lldb/test/API/tools/lldb-dap/memory/TestDAP_memory.py
index 7c9ad0c0f75ee..7c32ae4fb8c38 100644
--- a/lldb/test/API/tools/lldb-dap/memory/TestDAP_memory.py
+++ b/lldb/test/API/tools/lldb-dap/memory/TestDAP_memory.py
@@ -76,6 +76,7 @@ def test_memory_refs_set_variable(self):
)
@skipIfWindows
+ @skipIfWasm # the test finds the memory to read by evaluating an expression
def test_readMemory(self):
"""
Tests the 'readMemory' request
@@ -126,6 +127,7 @@ def test_readMemory(self):
# Flakey on 32-bit Arm Linux.
@skipIf(oslist=["linux"], archs=["arm$"])
+ @skipIfWasm # the test finds the memory to write by evaluating an expression
def test_writeMemory(self):
"""
Tests the 'writeMemory' request
diff --git a/lldb/test/API/tools/lldb-dap/module/TestDAP_module.py b/lldb/test/API/tools/lldb-dap/module/TestDAP_module.py
index 8e2a7bf001b93..fc9d1f2f9a20d 100644
--- a/lldb/test/API/tools/lldb-dap/module/TestDAP_module.py
+++ b/lldb/test/API/tools/lldb-dap/module/TestDAP_module.py
@@ -5,7 +5,11 @@
import platform
import re
-from lldbsuite.test.decorators import skipIfWindows, skipUnlessDarwin
+from lldbsuite.test.decorators import (
+ skipIfTargetDoesNotSupportSharedLibraries,
+ skipIfWindows,
+ skipUnlessDarwin,
+)
from lldbsuite.test.lldbtest import line_number
from lldbsuite.test.tools.lldb_dap.types import (
CompileUnitsArgs,
@@ -16,6 +20,7 @@
from lldbsuite.test.tools.lldb_dap import DAPTestCaseBase
+ at skipIfTargetDoesNotSupportSharedLibraries()
class TestDAP_module(DAPTestCaseBase):
def run_test(self, symbol_basename: str, expect_debug_info_size: bool):
session = self.build_and_create_session()
diff --git a/lldb/test/API/tools/lldb-dap/optimized/TestDAP_optimized.py b/lldb/test/API/tools/lldb-dap/optimized/TestDAP_optimized.py
index d76cc14e64c10..efaeb9bbbc677 100644
--- a/lldb/test/API/tools/lldb-dap/optimized/TestDAP_optimized.py
+++ b/lldb/test/API/tools/lldb-dap/optimized/TestDAP_optimized.py
@@ -2,7 +2,7 @@
Test lldb-dap variables/stackTrace request for optimized code
"""
-from lldbsuite.test.decorators import skipIfAsan, skipIfWindows
+from lldbsuite.test.decorators import skipIfAsan, skipIfWasm, skipIfWindows
from lldbsuite.test.lldbtest import line_number
from lldbsuite.test.tools.lldb_dap.types import LaunchArgs
from lldbsuite.test.tools.lldb_dap import DAPTestCaseBase
@@ -32,6 +32,7 @@ def test_stack_frame_name(self):
@skipIfAsan # On ASAN builds this test intermittently fails https://github.com/llvm/llvm-project/issues/111061
@skipIfWindows
+ @skipIfWasm # an optimized out variable keeps a reused local, so reading it succeeds
def test_optimized_variable(self):
"""Test optimized variable value contains error."""
program = self.getBuildArtifact("a.out")
diff --git a/lldb/test/API/tools/lldb-dap/output/TestDAP_output.py b/lldb/test/API/tools/lldb-dap/output/TestDAP_output.py
index a58de060263ce..325d63cdc15e7 100644
--- a/lldb/test/API/tools/lldb-dap/output/TestDAP_output.py
+++ b/lldb/test/API/tools/lldb-dap/output/TestDAP_output.py
@@ -2,7 +2,7 @@
Test lldb-dap output events
"""
-from lldbsuite.test.decorators import skipIfWindows
+from lldbsuite.test.decorators import skipIfWasm, skipIfWindows
from lldbsuite.test.lldbtest import line_number
from lldbsuite.test.tools.lldb_dap.types import LaunchArgs
from lldbsuite.test.tools.lldb_dap import DAPTestCaseBase
@@ -10,6 +10,7 @@
class TestDAP_output(DAPTestCaseBase):
@skipIfWindows
+ @skipIfWasm # WASI block buffers a redirected stdout, so the writes arrive out of order
def test_output(self):
"""
Test output handling for the running process.
diff --git a/lldb/test/API/tools/lldb-dap/restart/TestDAP_restart_console.py b/lldb/test/API/tools/lldb-dap/restart/TestDAP_restart_console.py
index 30780e7b22137..524f0b1f13e73 100644
--- a/lldb/test/API/tools/lldb-dap/restart/TestDAP_restart_console.py
+++ b/lldb/test/API/tools/lldb-dap/restart/TestDAP_restart_console.py
@@ -2,13 +2,20 @@
Test lldb-dap RestartRequest.
"""
-from lldbsuite.test.decorators import skipIf, skipIfAsan, skipIfBuildType, skipIfWindows
+from lldbsuite.test.decorators import (
+ skipIf,
+ skipIfAsan,
+ skipIfBuildType,
+ skipIfWasm,
+ skipIfWindows,
+)
from lldbsuite.test.lldbtest import line_number
from lldbsuite.test.tools.lldb_dap import DAPTestCaseBase
from lldbsuite.test.tools.lldb_dap.types import Console, LaunchArgs
@skipIfBuildType(["debug"])
+ at skipIfWasm # runInTerminal has the client run the program, and a Wasm module is not executable
class TestDAP_restart_console(DAPTestCaseBase):
@skipIfAsan
@skipIfWindows # https://github.com/llvm/llvm-project/issues/200840
diff --git a/lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py b/lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py
index 59e5527331def..3fd24633eb19e 100644
--- a/lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py
+++ b/lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py
@@ -66,6 +66,7 @@ def read_pipe_message(pipe):
@skipIfBuildType(["debug"])
+ at skipIfWasm # runInTerminal has the client run the program, and a Wasm module is not executable
class TestDAP_runInTerminal(lldbdap_testcase.DAPTestCaseBase):
SHARED_BUILD_TESTCASE = False
diff --git a/lldb/test/API/tools/lldb-dap/stackTraceMissingFunctionName/TestDAP_stackTraceMissingFunctionName.py b/lldb/test/API/tools/lldb-dap/stackTraceMissingFunctionName/TestDAP_stackTraceMissingFunctionName.py
index b68e415f73bfb..7e0c883c63fc0 100644
--- a/lldb/test/API/tools/lldb-dap/stackTraceMissingFunctionName/TestDAP_stackTraceMissingFunctionName.py
+++ b/lldb/test/API/tools/lldb-dap/stackTraceMissingFunctionName/TestDAP_stackTraceMissingFunctionName.py
@@ -2,13 +2,14 @@
Test lldb-dap stack trace response
"""
-from lldbsuite.test.decorators import skipIfWindows
+from lldbsuite.test.decorators import skipIfWasm, skipIfWindows
from lldbsuite.test.tools.lldb_dap.types import LaunchArgs
from lldbsuite.test.tools.lldb_dap import DAPTestCaseBase
class TestDAP_stackTraceMissingFunctionName(DAPTestCaseBase):
@skipIfWindows
+ @skipIfWasm # a Wasm indirect call traps without transferring control to the callee
def test_missingFunctionName(self):
"""
Test that the stack frame without a function name is given its pc in the response.
diff --git a/lldb/test/API/tools/lldb-dap/stopped-events/TestDAP_stopped_events.py b/lldb/test/API/tools/lldb-dap/stopped-events/TestDAP_stopped_events.py
index ce2d6cae6a983..54b0c556f0a62 100644
--- a/lldb/test/API/tools/lldb-dap/stopped-events/TestDAP_stopped_events.py
+++ b/lldb/test/API/tools/lldb-dap/stopped-events/TestDAP_stopped_events.py
@@ -8,6 +8,7 @@
expectedFailureAll,
expectedFailureNetBSD,
skipIfLinux,
+ skipIfTargetDoesNotSupportThreads,
skipIfWindows,
)
from lldbsuite.test.lldbtest import line_number
@@ -17,6 +18,7 @@
@skipIfWindows # This is flakey on Windows: llvm.org/pr24668, llvm.org/pr38373
@skipIfLinux
+ at skipIfTargetDoesNotSupportThreads()
class TestDAP_stopped_events(DAPTestCaseBase):
"""
Test validates
diff erent operations that produce 'stopped' events.
diff --git a/lldb/test/API/tools/lldb-dap/variables/children/TestDAP_variables_children.py b/lldb/test/API/tools/lldb-dap/variables/children/TestDAP_variables_children.py
index f37ccd6666915..b0a0d41e9e64b 100644
--- a/lldb/test/API/tools/lldb-dap/variables/children/TestDAP_variables_children.py
+++ b/lldb/test/API/tools/lldb-dap/variables/children/TestDAP_variables_children.py
@@ -1,4 +1,4 @@
-from lldbsuite.test.decorators import expectedFailureAll
+from lldbsuite.test.decorators import expectedFailureAll, skipIfWasm
from lldbsuite.test.lldbtest import line_number
from lldbsuite.test.tools.lldb_dap.types import LaunchArgs
from lldbsuite.test.tools.lldb_dap import DAPTestCaseBase
@@ -40,6 +40,7 @@ def test_get_num_children(self):
self.assertIn("['Indexed']", resp_body.result)
@expectedFailureAll(archs=["arm$", "arm64", "aarch64"])
+ @skipIfWasm # there is no ABI plugin for Wasm to find a return value with
def test_return_variable_with_children(self):
"""
Test the stepping out of a function with return value show the children correctly
diff --git a/lldb/test/API/tools/lldb-server/cached-memory-region-info/TestCachedMemoryRegionInfo.py b/lldb/test/API/tools/lldb-server/cached-memory-region-info/TestCachedMemoryRegionInfo.py
index 30695b32a7b45..35c2fc6fec8ca 100644
--- a/lldb/test/API/tools/lldb-server/cached-memory-region-info/TestCachedMemoryRegionInfo.py
+++ b/lldb/test/API/tools/lldb-server/cached-memory-region-info/TestCachedMemoryRegionInfo.py
@@ -9,6 +9,7 @@
@skipIfWindowsAndNoLLDBServer
+ at skipIfTargetDoesNotSupportThreads()
class MemoryRegionInfoPacketsCached(TestBase):
NO_DEBUG_INFO_TESTCASE = True
More information about the lldb-commits
mailing list