| """ |
| Test lldb-dap launch request. |
| """ |
| |
| from lldbsuite.test.decorators import expectedFailureWindows |
| from lldbsuite.test import lldbplatformutil |
| import lldbdap_testcase |
| import os |
| |
| |
| class TestDAP_launch_debuggerRoot(lldbdap_testcase.DAPTestCaseBase): |
| """ |
| Tests the "debuggerRoot" will change the working directory of |
| the lldb-dap debug adapter. |
| """ |
| |
| def test(self): |
| program = self.getBuildArtifact("a.out") |
| program_parent_dir = os.path.realpath(os.path.dirname(os.path.dirname(program))) |
| |
| var = "%cd%" if lldbplatformutil.getHostPlatform() == "windows" else "$PWD" |
| commands = [f"platform shell echo cwd = {var}"] |
| |
| self.build_and_launch( |
| program, debuggerRoot=program_parent_dir, initCommands=commands |
| ) |
| self.continue_to_exit() |
| output = self.get_console() |
| self.assertTrue(output and len(output) > 0, "expect console output") |
| lines = output.splitlines() |
| prefix = "cwd = " |
| found = False |
| for line in lines: |
| if line.startswith(prefix): |
| found = True |
| self.assertEqual( |
| program_parent_dir, |
| line.strip()[len(prefix) :], |
| "lldb-dap working dir '%s' == '%s'" |
| % (program_parent_dir, line[len(prefix) :]), |
| ) |
| self.assertTrue(found, "verified lldb-dap working directory") |