-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[lldb-dap] Automatically skip lldb-dap tests for remote platforms #93169
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@llvm/pr-subscribers-lldb Author: Pavel Labath (labath) ChangesThe don't currently work (and they're also not particularly useful, since all of the remote stuff happens inside lldb). This saves us from annotating tests one by one. Patch is 32.71 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/93169.diff 30 Files Affected:
diff --git a/lldb/packages/Python/lldbsuite/test/dotest.py b/lldb/packages/Python/lldbsuite/test/dotest.py
index ebabf348643ef..cab14eda62c94 100644
--- a/lldb/packages/Python/lldbsuite/test/dotest.py
+++ b/lldb/packages/Python/lldbsuite/test/dotest.py
@@ -542,12 +542,6 @@ def setupSysPath():
lldbDAPExec = os.path.join(lldbDir, "lldb-dap")
if is_exe(lldbDAPExec):
os.environ["LLDBDAP_EXEC"] = lldbDAPExec
- else:
- if not configuration.shouldSkipBecauseOfCategories(["lldb-dap"]):
- print(
- "The 'lldb-dap' executable cannot be located. The lldb-dap tests can not be run as a result."
- )
- configuration.skip_categories.append("lldb-dap")
lldbPythonDir = None # The directory that contains 'lldb/__init__.py'
@@ -929,6 +923,23 @@ def checkPexpectSupport():
configuration.skip_categories.append("pexpect")
+def checkDAPSupport():
+ import lldb
+
+ if "LLDBDAP_EXEC" not in os.environ:
+ msg = "The 'lldb-dap' executable cannot be located and its tests will not be run."
+ elif lldb.remote_platform:
+ msg = "lldb-dap tests are not compatible with remote platforms and will not be run."
+ else:
+ msg = None
+
+ if msg:
+ if configuration.verbose:
+ print(msg)
+ configuration.skip_categories.append("lldb-dap")
+
+
+
def run_suite():
# On MacOS X, check to make sure that domain for com.apple.DebugSymbols defaults
# does not exist before proceeding to running the test suite.
@@ -1029,6 +1040,7 @@ def run_suite():
checkObjcSupport()
checkForkVForkSupport()
checkPexpectSupport()
+ checkDAPSupport()
skipped_categories_list = ", ".join(configuration.skip_categories)
print(
diff --git a/lldb/test/API/tools/lldb-dap/attach/TestDAP_attach.py b/lldb/test/API/tools/lldb-dap/attach/TestDAP_attach.py
index cab0067382caf..b3ba69749f673 100644
--- a/lldb/test/API/tools/lldb-dap/attach/TestDAP_attach.py
+++ b/lldb/test/API/tools/lldb-dap/attach/TestDAP_attach.py
@@ -41,7 +41,6 @@ def set_and_hit_breakpoint(self, continueToExit=True):
@skipIfWindows
@skipIfNetBSD # Hangs on NetBSD as well
- @skipIfRemote
def test_by_pid(self):
"""
Tests attaching to a process by process ID.
@@ -59,7 +58,6 @@ def test_by_pid(self):
@skipIfWindows
@skipIfNetBSD # Hangs on NetBSD as well
- @skipIfRemote
def test_by_name(self):
"""
Tests attaching to a process by process name.
diff --git a/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_logpoints.py b/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_logpoints.py
index cbf190f2b2bfc..78ceb7971112e 100644
--- a/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_logpoints.py
+++ b/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_logpoints.py
@@ -20,7 +20,6 @@ def setUp(self):
self.main_path = os.path.realpath(self.getBuildArtifact(self.main_basename))
@skipIfWindows
- @skipIfRemote
def test_logmessage_basic(self):
"""Tests breakpoint logmessage basic functionality."""
before_loop_line = line_number("main.cpp", "// before loop")
@@ -83,7 +82,6 @@ def test_logmessage_basic(self):
self.assertRegex(logMessage_line, reg_str)
@skipIfWindows
- @skipIfRemote
def test_logmessage_advanced(self):
"""Tests breakpoint logmessage functionality for complex expression."""
before_loop_line = line_number("main.cpp", "// before loop")
@@ -144,7 +142,6 @@ def test_logmessage_advanced(self):
self.assertEqual(logMessage_line, logMessage_prefix + str(result))
@skipIfWindows
- @skipIfRemote
def test_logmessage_format(self):
"""
Tests breakpoint logmessage functionality with format.
@@ -209,7 +206,6 @@ def test_logmessage_format(self):
)
@skipIfWindows
- @skipIfRemote
def test_logmessage_format_failure(self):
"""
Tests breakpoint logmessage format with parsing failure.
diff --git a/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_setBreakpoints.py b/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_setBreakpoints.py
index 6f57c05e43c8b..123fea79c5cda 100644
--- a/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_setBreakpoints.py
+++ b/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_setBreakpoints.py
@@ -20,7 +20,6 @@ def setUp(self):
self.main_path = os.path.realpath(self.getBuildArtifact(self.main_basename))
@skipIfWindows
- @skipIfRemote
def test_source_map(self):
"""
This test simulates building two files in a folder, and then moving
@@ -99,7 +98,6 @@ def test_source_map(self):
self.assertEqual(frames[1]["source"]["path"], new_main_path)
@skipIfWindows
- @skipIfRemote
def test_set_and_clear(self):
"""Tests setting and clearing source file and line breakpoints.
This packet is a bit tricky on the debug adaptor side since there
@@ -261,7 +259,6 @@ def test_set_and_clear(self):
)
@skipIfWindows
- @skipIfRemote
def test_clear_breakpoints_unset_breakpoints(self):
"""Test clearing breakpoints like test_set_and_clear, but clear
breakpoints by omitting the breakpoints array instead of sending an
@@ -305,7 +302,6 @@ def test_clear_breakpoints_unset_breakpoints(self):
self.assertEqual(len(breakpoints), 0, "expect no source breakpoints")
@skipIfWindows
- @skipIfRemote
def test_functionality(self):
"""Tests hitting breakpoints and the functionality of a single
breakpoint, like 'conditions' and 'hitCondition' settings."""
diff --git a/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_setExceptionBreakpoints.py b/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_setExceptionBreakpoints.py
index 84d3f12490f3e..b2ab12e51bf68 100644
--- a/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_setExceptionBreakpoints.py
+++ b/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_setExceptionBreakpoints.py
@@ -12,7 +12,6 @@
class TestDAP_setExceptionBreakpoints(lldbdap_testcase.DAPTestCaseBase):
@skipIfWindows
- @skipIfRemote
def test_functionality(self):
"""Tests setting and clearing exception breakpoints.
This packet is a bit tricky on the debug adaptor side since there
diff --git a/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_setFunctionBreakpoints.py b/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_setFunctionBreakpoints.py
index 9708effb7a1a7..8f00f42574b56 100644
--- a/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_setFunctionBreakpoints.py
+++ b/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_setFunctionBreakpoints.py
@@ -12,7 +12,6 @@
class TestDAP_setFunctionBreakpoints(lldbdap_testcase.DAPTestCaseBase):
@skipIfWindows
- @skipIfRemote
def test_set_and_clear(self):
"""Tests setting and clearing function breakpoints.
This packet is a bit tricky on the debug adaptor side since there
@@ -123,7 +122,6 @@ def test_set_and_clear(self):
)
@skipIfWindows
- @skipIfRemote
def test_functionality(self):
"""Tests hitting breakpoints and the functionality of a single
breakpoint, like 'conditions' and 'hitCondition' settings."""
diff --git a/lldb/test/API/tools/lldb-dap/commands/TestDAP_commands.py b/lldb/test/API/tools/lldb-dap/commands/TestDAP_commands.py
index bfdf9ef2897b2..226b9385fe719 100644
--- a/lldb/test/API/tools/lldb-dap/commands/TestDAP_commands.py
+++ b/lldb/test/API/tools/lldb-dap/commands/TestDAP_commands.py
@@ -7,7 +7,6 @@
class TestDAP_commands(lldbdap_testcase.DAPTestCaseBase):
- @skipIfRemote
def test_command_directive_quiet_on_success(self):
program = self.getBuildArtifact("a.out")
command_quiet = (
@@ -61,7 +60,6 @@ def test_command_directive_abort_on_error_launch_commands(self):
def test_command_directive_abort_on_error_pre_run_commands(self):
self.do_test_abort_on_error(use_pre_run_commands=True)
- @skipIfRemote
def test_command_directive_abort_on_error_post_run_commands(self):
self.do_test_abort_on_error(use_post_run_commands=True)
diff --git a/lldb/test/API/tools/lldb-dap/completions/TestDAP_completions.py b/lldb/test/API/tools/lldb-dap/completions/TestDAP_completions.py
index 3250a5093cac4..2b3ec656c107a 100644
--- a/lldb/test/API/tools/lldb-dap/completions/TestDAP_completions.py
+++ b/lldb/test/API/tools/lldb-dap/completions/TestDAP_completions.py
@@ -19,7 +19,6 @@ def verify_completions(self, actual_list, expected_list, not_expected_list=[]):
self.assertNotIn(not_expected_item, actual_list)
@skipIfWindows
- @skipIfRemote
@skipIf(compiler="clang", compiler_version=["<", "17.0"])
def test_completions(self):
"""
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 8769f39633e62..e6345818bf087 100644
--- a/lldb/test/API/tools/lldb-dap/console/TestDAP_console.py
+++ b/lldb/test/API/tools/lldb-dap/console/TestDAP_console.py
@@ -38,7 +38,6 @@ def check_lldb_command(
)
@skipIfWindows
- @skipIfRemote
def test_scopes_variables_setVariable_evaluate(self):
"""
Tests that the "scopes" request causes the currently selected
@@ -82,7 +81,6 @@ def test_scopes_variables_setVariable_evaluate(self):
self.check_lldb_command("frame select", "frame #1", "frame 1 is selected")
@skipIfWindows
- @skipIfRemote
def test_custom_escape_prefix(self):
program = self.getBuildArtifact("a.out")
self.build_and_launch(program, commandEscapePrefix="::")
@@ -99,7 +97,6 @@ def test_custom_escape_prefix(self):
)
@skipIfWindows
- @skipIfRemote
def test_empty_escape_prefix(self):
program = self.getBuildArtifact("a.out")
self.build_and_launch(program, commandEscapePrefix="")
@@ -116,7 +113,6 @@ def test_empty_escape_prefix(self):
)
@skipIfWindows
- @skipIfRemote
def test_exit_status_message_sigterm(self):
source = "main.cpp"
program = self.getBuildArtifact("a.out")
@@ -154,7 +150,6 @@ def test_exit_status_message_sigterm(self):
)
@skipIfWindows
- @skipIfRemote
def test_exit_status_message_ok(self):
source = "main.cpp"
program = self.getBuildArtifact("a.out")
diff --git a/lldb/test/API/tools/lldb-dap/console/TestDAP_redirection_to_console.py b/lldb/test/API/tools/lldb-dap/console/TestDAP_redirection_to_console.py
index 85911a449efef..8b47d4b9d6814 100644
--- a/lldb/test/API/tools/lldb-dap/console/TestDAP_redirection_to_console.py
+++ b/lldb/test/API/tools/lldb-dap/console/TestDAP_redirection_to_console.py
@@ -8,7 +8,6 @@
class TestDAP_redirection_to_console(lldbdap_testcase.DAPTestCaseBase):
@skipIfWindows
- @skipIfRemote
def test(self):
"""
Without proper stderr and stdout redirection, the following code would throw an
diff --git a/lldb/test/API/tools/lldb-dap/coreFile/TestDAP_coreFile.py b/lldb/test/API/tools/lldb-dap/coreFile/TestDAP_coreFile.py
index cabaeafc4a641..3c847dc269b28 100644
--- a/lldb/test/API/tools/lldb-dap/coreFile/TestDAP_coreFile.py
+++ b/lldb/test/API/tools/lldb-dap/coreFile/TestDAP_coreFile.py
@@ -13,7 +13,6 @@
class TestDAP_coreFile(lldbdap_testcase.DAPTestCaseBase):
@skipIfWindows
- @skipIfRemote
@skipIfLLVMTargetMissing("X86")
def test_core_file(self):
current_dir = os.path.dirname(__file__)
@@ -60,7 +59,6 @@ def test_core_file(self):
self.assertEqual(self.get_stackFrames(), expected_frames)
@skipIfWindows
- @skipIfRemote
@skipIfLLVMTargetMissing("X86")
def test_core_file_source_mapping(self):
"""Test that sourceMap property is correctly applied when loading a core"""
diff --git a/lldb/test/API/tools/lldb-dap/databreakpoint/TestDAP_setDataBreakpoints.py b/lldb/test/API/tools/lldb-dap/databreakpoint/TestDAP_setDataBreakpoints.py
index 1e0e40d4a0130..a542a318050dd 100644
--- a/lldb/test/API/tools/lldb-dap/databreakpoint/TestDAP_setDataBreakpoints.py
+++ b/lldb/test/API/tools/lldb-dap/databreakpoint/TestDAP_setDataBreakpoints.py
@@ -13,7 +13,6 @@ def setUp(self):
self.accessTypes = ["read", "write", "readWrite"]
@skipIfWindows
- @skipIfRemote
def test_duplicate_start_addresses(self):
"""Test setDataBreakpoints with multiple watchpoints starting at the same addresses."""
program = self.getBuildArtifact("a.out")
@@ -58,7 +57,6 @@ def test_duplicate_start_addresses(self):
self.assertEqual(i_val, "2")
@skipIfWindows
- @skipIfRemote
def test_expression(self):
"""Tests setting data breakpoints on expression."""
program = self.getBuildArtifact("a.out")
@@ -99,7 +97,6 @@ def test_expression(self):
self.assertEqual(i_val, "2")
@skipIfWindows
- @skipIfRemote
def test_functionality(self):
"""Tests setting data breakpoints on variable."""
program = self.getBuildArtifact("a.out")
diff --git a/lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py b/lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py
index 1b96ea71659f9..9e8ef5b289f2e 100644
--- a/lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py
+++ b/lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py
@@ -13,7 +13,6 @@
class TestDAP_disassemble(lldbdap_testcase.DAPTestCaseBase):
@skipIfWindows
- @skipIfRemote
def test_disassemble(self):
"""
Tests the 'disassemble' request.
diff --git a/lldb/test/API/tools/lldb-dap/disconnect/TestDAP_disconnect.py b/lldb/test/API/tools/lldb-dap/disconnect/TestDAP_disconnect.py
index e5aab88c7fa46..f9e461adecb15 100644
--- a/lldb/test/API/tools/lldb-dap/disconnect/TestDAP_disconnect.py
+++ b/lldb/test/API/tools/lldb-dap/disconnect/TestDAP_disconnect.py
@@ -24,7 +24,6 @@ def disconnect_and_assert_no_output_printed(self):
self.assertTrue(output is None or len(output) == 0)
@skipIfWindows
- @skipIfRemote
def test_launch(self):
"""
This test launches a process that would creates a file, but we disconnect
@@ -46,7 +45,6 @@ def test_launch(self):
self.assertFalse(os.path.exists(program + ".side_effect"))
@skipIfWindows
- @skipIfRemote
@expectedFailureNetBSD
def test_attach(self):
"""
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 68c57ad775544..29548a835c691 100644
--- a/lldb/test/API/tools/lldb-dap/evaluate/TestDAP_evaluate.py
+++ b/lldb/test/API/tools/lldb-dap/evaluate/TestDAP_evaluate.py
@@ -192,31 +192,26 @@ def run_test_evaluate_expressions(
self.assertEvaluate("my_bool_vec", "size=2")
@skipIfWindows
- @skipIfRemote
def test_generic_evaluate_expressions(self):
# Tests context-less expression evaluations
self.run_test_evaluate_expressions(enableAutoVariableSummaries=False)
@skipIfWindows
- @skipIfRemote
def test_repl_evaluate_expressions(self):
# Tests expression evaluations that are triggered from the Debug Console
self.run_test_evaluate_expressions("repl", enableAutoVariableSummaries=False)
@skipIfWindows
- @skipIfRemote
def test_watch_evaluate_expressions(self):
# Tests expression evaluations that are triggered from a watch expression
self.run_test_evaluate_expressions("watch", enableAutoVariableSummaries=True)
@skipIfWindows
- @skipIfRemote
def test_hover_evaluate_expressions(self):
# Tests expression evaluations that are triggered when hovering on the editor
self.run_test_evaluate_expressions("hover", enableAutoVariableSummaries=False)
@skipIfWindows
- @skipIfRemote
def test_variable_evaluate_expressions(self):
# Tests expression evaluations that are triggered in the variable explorer
self.run_test_evaluate_expressions("variable", enableAutoVariableSummaries=True)
diff --git a/lldb/test/API/tools/lldb-dap/exception/TestDAP_exception.py b/lldb/test/API/tools/lldb-dap/exception/TestDAP_exception.py
index 58a67d8164368..8c2c0154ba65c 100644
--- a/lldb/test/API/tools/lldb-dap/exception/TestDAP_exception.py
+++ b/lldb/test/API/tools/lldb-dap/exception/TestDAP_exception.py
@@ -9,7 +9,6 @@
class TestDAP_exception(lldbdap_testcase.DAPTestCaseBase):
- @skipIfRemote
@skipIfWindows
def test_stopped_description(self):
"""
diff --git a/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch.py b/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch.py
index 0760d358d9c0b..05873e926b64e 100644
--- a/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch.py
+++ b/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch.py
@@ -13,7 +13,6 @@
class TestDAP_launch(lldbdap_testcase.DAPTestCaseBase):
@skipIfWindows
- @skipIfRemote
def test_default(self):
"""
Tests the default launch of a simple program. No arguments,
@@ -29,7 +28,6 @@ def test_default(self):
self.assertIn(program, lines[0], "make sure program path is in first argument")
@skipIfWindows
- @skipIfRemote
def test_termination(self):
"""
Tests the correct termination of lldb-dap upon a 'disconnect'
@@ -50,7 +48,6 @@ def test_termination(self):
self.assertEqual(self.dap_server.process.poll(), 0)
@skipIfWindows
- @skipIfRemote
def test_stopOnEntry(self):
"""
Tests the default launch of a simple program that stops at the
@@ -70,7 +67,6 @@ def test_stopOnEntry(self):
)
@skipIfWindows
- @skipIfRemote
def test_cwd(self):
"""
Tests the default launch of a simple program with a current working
@@ -97,7 +93,6 @@ def test_cwd(self):
self.assertTrue(found, "verified program working directory")
@skipIfWindows
- @skipIfRemote
def test_debuggerRoot(self):
"""
Tests the "debuggerRoot" will change the working directory of
@@ -127,7 +122,6 @@ def test_debuggerRoot(self):
self.continue_to_exit()
@skipIfWindows
- @skipIfRemote
def test_sourcePath(self):
"""
Tests the "sourcePath" will set the target.source-map.
@@ -153,7 +147,6 @@ def test_sourcePath(self):
self.continue_to_exit()
@skipIfWindows
- @skipIfRemote
def test_disableSTDIO(self):
"""
Tests the default launch of a simple program with STDIO disabled.
@@ -168,7 +161,6 @@ def test_disableSTDIO(self):
@skipIfWindows
@skipIfLinux # shell argument expansion doesn't seem to work on Linux
@expectedFailureAll(oslist=["freebsd", "netbsd"], bugnumber="llvm.org/pr48349")
- @skipIfRemote
def test_shellExpandArguments_enabled(self):
"""
Tests the default launch of a simple program with shell expansion
@@ -191,7 +183,6 @@ def test_shellExpandArguments_enabled(self):
)
@skipIfWindows
- @skipIfRemote
def test_shellExpandArguments_disabled(self):
"""
Tests the default launch of a simple program with shell expansion
@@ -214,7 +205,6 @@ def test_shellExpandArguments_disabled(self):
)
@skipIfWindows
- @skipIfRemote
def test_args(self):
"""
Tests launch of a simple program with arguments
@@ -240,7 +230,6 @@ def test_args(self):
)
@skipIfWindows
- @skipIfRemote
def test_environment(self):
"""
Tests launch of a simple program with environment variables
@@ -270,7 +259,6 @@ def test_environment(self):
)
@skipIfWindows
- @skipIfRemote
@skipIf(
archs=["arm", "aarch64"]
) # failed run https://lab.llvm.org/buildbot/#/builders/96/builds/6933
@@ -354,7 +342,6 @@ def test_commands(self):
self.verify_commands("terminateCommands", output, terminateCommands)
@skipIfWindows
- @skipIfRemote
def test_extra_launch_commands(self):
"""
Tests the "launchCommands" with extra launching settings
@@ -420,7 +407,6 @@ def test_extra_launch_commands(self):
self.verify_commands("exitCommands", output, exi...
[truncated]
|
The don't currently work (and they're also not particularly useful, since all of the remote stuff happens inside lldb). This saves us from annotating tests one by one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks!
The don't currently work (and they're also not particularly useful, since all of the remote stuff happens inside lldb).
This saves us from annotating tests one by one.