@@ -57,3 +57,48 @@ def test_platform_process_connect(self):
57
57
self .assertEqual (frame .GetFunction ().GetName (), "main" )
58
58
self .assertEqual (frame .FindVariable ("argc" ).GetValueAsSigned (), 2 )
59
59
process .Continue ()
60
+
61
+ @skipIfRemote
62
+ @expectedFailureAll (hostoslist = ["windows" ], triple = ".*-android" )
63
+ @skipIfDarwin # lldb-server not found correctly
64
+ @expectedFailureAll (oslist = ["windows" ]) # process modules not loaded
65
+ # lldb-server platform times out waiting for the gdbserver port number to be
66
+ # written to the pipe, yet it seems the gdbserver already has written it.
67
+ @expectedFailureAll (
68
+ archs = ["aarch64" ],
69
+ oslist = ["freebsd" ],
70
+ bugnumber = "https://github.com/llvm/llvm-project/issues/84327" ,
71
+ )
72
+ @add_test_categories (["lldb-server" ])
73
+ def test_platform_process_connect_with_unix_connect (self ):
74
+ self .build ()
75
+ lldb_temp_dir = lldb .SBHostOS .GetLLDBPath (lldb .ePathTypeLLDBTempSystemDir )
76
+ named_pipe = "%s/platform_server.sock" % lldb_temp_dir
77
+ port_file = self .getBuildArtifact ("port" )
78
+ commandline_args = [
79
+ "platform" ,
80
+ "--listen" ,
81
+ named_pipe ,
82
+ "--socket-file" ,
83
+ port_file ,
84
+ "--" ,
85
+ self .getBuildArtifact ("a.out" ),
86
+ "foo" ,
87
+ ]
88
+ self .spawnSubprocess (lldbgdbserverutils .get_lldb_server_exe (), commandline_args )
89
+
90
+ socket_file = lldbutil .wait_for_file_on_target (self , port_file )
91
+ new_platform = lldb .SBPlatform ("remote-" + self .getPlatform ())
92
+ self .dbg .SetSelectedPlatform (new_platform )
93
+ connect_url = "unix-connect://%s" % socket_file
94
+ self .runCmd ("platform connect %s" % connect_url )
95
+
96
+ lldbutil .run_break_set_by_symbol (self , "main" )
97
+ process = self .process ()
98
+
99
+ process .Continue ()
100
+
101
+ frame = self .frame ()
102
+ self .assertEqual (frame .GetFunction ().GetName (), "main" )
103
+ self .assertEqual (frame .FindVariable ("argc" ).GetValueAsSigned (), 2 )
104
+ process .Continue ()
0 commit comments