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 +@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 +@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 +@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 * +@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 +@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 +@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 +@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 +@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 +@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 * +@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 +@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 +@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 +@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 +@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 +@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 +@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"]) +@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"]) +@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 +@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 +@skipIfTargetDoesNotSupportThreads() class MemoryRegionInfoPacketsCached(TestBase): NO_DEBUG_INFO_TESTCASE = True _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
