Skip to content

Commit 8844cd6

Browse files
committed
[lldb] Added function for socket checking
1 parent 1fdc2f8 commit 8844cd6

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed

lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,22 @@ def get_target_byte_order(self):
343343
target = self.dbg.CreateTarget(inferior_exe_path)
344344
return target.GetByteOrder()
345345

346+
def is_port_opened(self):
347+
connect_port = self.port
348+
349+
err, retcode, cmd_output = self.run_platform_command(f"netstat -ltn | grep {connect_port} | grep LISTEN")
350+
351+
self.assertTrue(
352+
err.Success(),
353+
"Failed to get opened tcp sockets: %s, retcode: %d"
354+
% (err.GetCString(), retcode),
355+
)
356+
357+
if retcode == 0:
358+
return True
359+
else:
360+
return False
361+
346362
def launch_debug_monitor(self, attach_pid=None, logfile=None):
347363
if self.reverse_connect:
348364
family, type, proto, _, addr = socket.getaddrinfo(
@@ -401,15 +417,17 @@ def connect_to_debug_monitor(self, attach_pid=None):
401417
MAX_CONNECT_ATTEMPTS = 10
402418

403419
while connect_attempts < MAX_CONNECT_ATTEMPTS:
404-
# Create a socket to talk to the server
405-
try:
406-
logger.info("Connect attempt %d", connect_attempts + 1)
407-
self.sock = self.create_socket()
408-
self._server = Server(self.sock, server)
409-
return server
410-
except _ConnectionRefused as serr:
411-
# Ignore, and try again.
412-
pass
420+
if self.is_port_opened():
421+
# Create a socket to talk to the server
422+
try:
423+
logger.info("Connect attempt %d", connect_attempts + 1)
424+
self.sock = self.create_socket()
425+
self._server = Server(self.sock, server)
426+
return server
427+
except _ConnectionRefused as serr:
428+
# Ignore, and try again.
429+
pass
430+
413431
time.sleep(0.5)
414432
connect_attempts += 1
415433

0 commit comments

Comments
 (0)