Skip to content

Commit cbc183b

Browse files
committed
[lldb] Fixed the test TestGdbRemoteLaunch
Install `a.out` to the remote target (after handshake) if necessary and use the remote path to call vRun.
1 parent 1d6bf0c commit cbc183b

File tree

1 file changed

+35
-21
lines changed

1 file changed

+35
-21
lines changed

lldb/test/API/tools/lldb-server/TestGdbRemoteLaunch.py

Lines changed: 35 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,32 @@
88

99

1010
class GdbRemoteLaunchTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
11+
def get_exe_path(self):
12+
exe_path = self.getBuildArtifact("a.out")
13+
if lldb.remote_platform:
14+
remote_path = lldbutil.append_to_process_working_directory(self, "a.out")
15+
err = lldb.remote_platform.Install(
16+
lldb.SBFileSpec(exe_path, True), lldb.SBFileSpec(remote_path, False)
17+
)
18+
if err.Fail():
19+
raise Exception(
20+
"remote_platform.Install('%s', '%s') failed: %s"
21+
% (exe_path, remote_path, err)
22+
)
23+
exe_path = remote_path
24+
return exe_path
25+
1126
@skipIfWindows # No pty support to test any inferior output
1227
@add_test_categories(["llgs"])
1328
def test_launch_via_A(self):
1429
self.build()
15-
exe_path = self.getBuildArtifact("a.out")
16-
args = [exe_path, "stderr:arg1", "stderr:arg2", "stderr:arg3"]
17-
hex_args = [seven.hexlify(x) for x in args]
18-
1930
server = self.connect_to_debug_monitor()
2031
self.assertIsNotNone(server)
2132
self.do_handshake()
33+
exe_path = self.get_exe_path()
34+
args = [exe_path, "stderr:arg1", "stderr:arg2", "stderr:arg3"]
35+
hex_args = [seven.hexlify(x) for x in args]
36+
2237
# NB: strictly speaking we should use %x here but this packet
2338
# is deprecated, so no point in changing lldb-server's expectations
2439
self.test_sequence.add_log_lines(
@@ -38,13 +53,13 @@ def test_launch_via_A(self):
3853
@add_test_categories(["llgs"])
3954
def test_launch_via_vRun(self):
4055
self.build()
41-
exe_path = self.getBuildArtifact("a.out")
42-
args = [exe_path, "stderr:arg1", "stderr:arg2", "stderr:arg3"]
43-
hex_args = [seven.hexlify(x) for x in args]
44-
4556
server = self.connect_to_debug_monitor()
4657
self.assertIsNotNone(server)
4758
self.do_handshake()
59+
exe_path = self.get_exe_path()
60+
args = [exe_path, "stderr:arg1", "stderr:arg2", "stderr:arg3"]
61+
hex_args = [seven.hexlify(x) for x in args]
62+
4863
self.test_sequence.add_log_lines(
4964
[
5065
"read packet: $vRun;%s;%s;%s;%s#00" % tuple(hex_args),
@@ -60,12 +75,12 @@ def test_launch_via_vRun(self):
6075
@add_test_categories(["llgs"])
6176
def test_launch_via_vRun_no_args(self):
6277
self.build()
63-
exe_path = self.getBuildArtifact("a.out")
64-
hex_path = seven.hexlify(exe_path)
65-
6678
server = self.connect_to_debug_monitor()
6779
self.assertIsNotNone(server)
6880
self.do_handshake()
81+
exe_path = self.get_exe_path()
82+
hex_path = seven.hexlify(exe_path)
83+
6984
self.test_sequence.add_log_lines(
7085
[
7186
"read packet: $vRun;%s#00" % (hex_path,),
@@ -78,6 +93,7 @@ def test_launch_via_vRun_no_args(self):
7893
self.expect_gdbremote_sequence()
7994

8095
@add_test_categories(["llgs"])
96+
@skipIfRemote
8197
def test_launch_failure_via_vRun(self):
8298
self.build()
8399
exe_path = self.getBuildArtifact("a.out")
@@ -110,14 +126,13 @@ def test_launch_failure_via_vRun(self):
110126
@add_test_categories(["llgs"])
111127
def test_QEnvironment(self):
112128
self.build()
113-
exe_path = self.getBuildArtifact("a.out")
114-
env = {"FOO": "test", "BAR": "a=z"}
115-
args = [exe_path, "print-env:FOO", "print-env:BAR"]
116-
hex_args = [seven.hexlify(x) for x in args]
117-
118129
server = self.connect_to_debug_monitor()
119130
self.assertIsNotNone(server)
120131
self.do_handshake()
132+
exe_path = self.get_exe_path()
133+
env = {"FOO": "test", "BAR": "a=z"}
134+
args = [exe_path, "print-env:FOO", "print-env:BAR"]
135+
hex_args = [seven.hexlify(x) for x in args]
121136

122137
for key, value in env.items():
123138
self.test_sequence.add_log_lines(
@@ -143,14 +158,13 @@ def test_QEnvironment(self):
143158
@add_test_categories(["llgs"])
144159
def test_QEnvironmentHexEncoded(self):
145160
self.build()
146-
exe_path = self.getBuildArtifact("a.out")
147-
env = {"FOO": "test", "BAR": "a=z", "BAZ": "a*}#z"}
148-
args = [exe_path, "print-env:FOO", "print-env:BAR", "print-env:BAZ"]
149-
hex_args = [seven.hexlify(x) for x in args]
150-
151161
server = self.connect_to_debug_monitor()
152162
self.assertIsNotNone(server)
153163
self.do_handshake()
164+
exe_path = self.get_exe_path()
165+
env = {"FOO": "test", "BAR": "a=z", "BAZ": "a*}#z"}
166+
args = [exe_path, "print-env:FOO", "print-env:BAR", "print-env:BAZ"]
167+
hex_args = [seven.hexlify(x) for x in args]
154168

155169
for key, value in env.items():
156170
hex_enc = seven.hexlify("%s=%s" % (key, value))

0 commit comments

Comments
 (0)