Author: Pavel Labath Date: 2021-03-18T15:20:44+01:00 New Revision: 68bb51acd572735d80d20adb2c2fc51a5cbbd88e
URL: https://github.com/llvm/llvm-project/commit/68bb51acd572735d80d20adb2c2fc51a5cbbd88e DIFF: https://github.com/llvm/llvm-project/commit/68bb51acd572735d80d20adb2c2fc51a5cbbd88e.diff LOG: [lldb] Fix TestAutoInstallMainExecutable.py Fix the test to account for recent test infrastructure changes, and make it run locally to increase the chances of it continuing to work in the future. Added: Modified: lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py Removed: ################################################################################ diff --git a/lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py b/lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py index 5afb57f3ac46..92151cea4e67 100644 --- a/lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py +++ b/lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py @@ -2,61 +2,56 @@ Test target commands: target.auto-install-main-executable. """ +import socket import time -import gdbremote_testcase +import lldbgdbserverutils from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil -class TestAutoInstallMainExecutable(gdbremote_testcase.GdbRemoteTestCaseBase): +class TestAutoInstallMainExecutable(TestBase): mydir = TestBase.compute_mydir(__file__) + NO_DEBUG_INFO_TESTCASE = True - @llgs_test - @no_debug_info_test - @skipIf(remote=False) - @expectedFailureAll(hostoslist=["windows"], triple='.*-android') + @skipIfRemote + @expectedFailureAll(oslist=["windows"]) # process modules not loaded def test_target_auto_install_main_executable(self): self.build() - # Manually install the modified binary. - working_dir = lldb.remote_platform.GetWorkingDirectory() - src_device = lldb.SBFileSpec(self.getBuildArtifact("a.device.out")) - dest = lldb.SBFileSpec(os.path.join(working_dir, "a.out")) - err = lldb.remote_platform.Put(src_device, dest) - if err.Fail(): - raise RuntimeError( - "Unable copy '%s' to '%s'.\n>>> %s" % - (src_device.GetFilename(), working_dir, err.GetCString())) - - m = re.search("^(.*)://([^/]*):(.*)$", configuration.lldb_platform_url) - protocol = m.group(1) - hostname = m.group(2) - hostport = int(m.group(3)) - listen_url = "*:"+str(hostport+1) + hostname = socket.getaddrinfo("localhost", 0, proto=socket.IPPROTO_TCP)[0][4][0] + listen_url = "[%s]:0"%hostname + port_file = self.getBuildArtifact("port") commandline_args = [ "platform", "--listen", listen_url, - "--server" - ] - + "--socket-file", + port_file] self.spawnSubprocess( - self.debug_monitor_exe, - commandline_args, - install_remote=False) + lldbgdbserverutils.get_lldb_server_exe(), + commandline_args) - # Wait for the new process gets ready. - time.sleep(0.1) + socket_id = lldbutil.wait_for_file_on_target(self, port_file) - self.dbg.SetAsync(False) - - new_platform = lldb.SBPlatform(lldb.remote_platform.GetName()) + new_platform = lldb.SBPlatform("remote-" + self.getPlatform()) self.dbg.SetSelectedPlatform(new_platform) - connect_url = "%s://%s:%s" % (protocol, hostname, str(hostport+1)) + connect_url = "connect://[%s]:%s" % (hostname, socket_id) + connect_opts = lldb.SBPlatformConnectOptions(connect_url) + self.assertSuccess(new_platform.ConnectRemote(connect_opts)) + + wd = self.getBuildArtifact("wd") + os.mkdir(wd) + new_platform.SetWorkingDirectory(wd) + + + # Manually install the modified binary. + src_device = lldb.SBFileSpec(self.getBuildArtifact("a.device.out")) + dest = lldb.SBFileSpec(os.path.join(wd, "a.out")) + self.assertSuccess(new_platform.Put(src_device, dest)) # Test the default setting. self.expect("settings show target.auto-install-main-executable", @@ -68,12 +63,9 @@ def test_target_auto_install_main_executable(self): self.expect("settings show target.auto-install-main-executable", substrs=["target.auto-install-main-executable (boolean) = false"]) - self.runCmd("platform select %s"%configuration.lldb_platform_name) - self.runCmd("platform connect %s" % (connect_url)) - # Create the target with the original file. self.runCmd("target create --remote-file %s %s "% - (os.path.join(working_dir,dest.GetFilename()), + (dest.fullpath, self.getBuildArtifact("a.out"))) target = self.dbg.GetSelectedTarget() _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits