[Lldb-commits] [lldb] r233531 - Fix TestGdbRemote* on remote linux
Tamas Berghammer
tberghammer at google.com
Mon Mar 30 03:52:32 PDT 2015
Author: tberghammer
Date: Mon Mar 30 05:52:32 2015
New Revision: 233531
URL: http://llvm.org/viewvc/llvm-project?rev=233531&view=rev
Log:
Fix TestGdbRemote* on remote linux
Differential revision: http://reviews.llvm.org/D8454
Modified:
lldb/trunk/test/dotest.py
lldb/trunk/test/tools/lldb-server/gdbremote_testcase.py
Modified: lldb/trunk/test/dotest.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dotest.py?rev=233531&r1=233530&r2=233531&view=diff
==============================================================================
--- lldb/trunk/test/dotest.py (original)
+++ lldb/trunk/test/dotest.py Mon Mar 30 05:52:32 2015
@@ -1334,14 +1334,17 @@ if lldb_platform_name:
if lldb_platform_url:
# We must connect to a remote platform if a LLDB platform URL was specified
print "Connecting to remote platform '%s' at '%s'..." % (lldb_platform_name, lldb_platform_url)
- platform_connect_options = lldb.SBPlatformConnectOptions(lldb_platform_url);
+ lldb.platfrom_url = lldb_platform_url
+ platform_connect_options = lldb.SBPlatformConnectOptions(lldb_platform_url)
err = lldb.remote_platform.ConnectRemote(platform_connect_options)
if err.Success():
print "Connected."
else:
print "error: failed to connect to remote platform using URL '%s': %s" % (lldb_platform_url, err)
exitTestSuite(1)
-
+ else:
+ lldb.platfrom_url = None
+
if lldb_platform_working_dir:
print "Setting remote platform working directory to '%s'..." % (lldb_platform_working_dir)
lldb.remote_platform.SetWorkingDirectory(lldb_platform_working_dir)
@@ -1351,6 +1354,7 @@ if lldb_platform_name:
else:
lldb.remote_platform = None
lldb.remote_platform_working_dir = None
+ lldb.platfrom_url = None
target_platform = lldb.DBG.GetSelectedPlatform().GetTriple().split('-')[2]
Modified: lldb/trunk/test/tools/lldb-server/gdbremote_testcase.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-server/gdbremote_testcase.py?rev=233531&r1=233530&r2=233531&view=diff
==============================================================================
--- lldb/trunk/test/tools/lldb-server/gdbremote_testcase.py (original)
+++ lldb/trunk/test/tools/lldb-server/gdbremote_testcase.py Mon Mar 30 05:52:32 2015
@@ -60,7 +60,10 @@ class GdbRemoteTestCaseBase(TestBase):
self.named_pipe = None
self.named_pipe_fd = None
self.stub_sends_two_stop_notifications_on_kill = False
- self.stub_hostname = "localhost"
+ if lldb.platfrom_url:
+ self.stub_hostname = re.match(".*://(.*):[0-9]+", lldb.platfrom_url).group(1)
+ else:
+ self.stub_hostname = "localhost"
def get_next_port(self):
return 12000 + random.randint(0,3999)
@@ -184,6 +187,13 @@ class GdbRemoteTestCaseBase(TestBase):
sock = socket.socket()
logger = self.logger
+ triple = self.dbg.GetSelectedPlatform().GetTriple()
+ if re.match(".*-.*-.*-android", triple):
+ self.forward_adb_port(self.port, self.port, "forward")
+
+ connect_info = (self.stub_hostname, self.port)
+ sock.connect(connect_info)
+
def shutdown_socket():
if sock:
try:
@@ -199,14 +209,6 @@ class GdbRemoteTestCaseBase(TestBase):
self.addTearDownHook(shutdown_socket)
- triple = self.dbg.GetSelectedPlatform().GetTriple()
- if re.match(".*-.*-.*-android", triple):
- self.forward_adb_port(self.port, self.port, "forward")
-
- connect_info = (self.stub_hostname, self.port)
- # print "connecting to stub on {}:{}".format(connect_info[0], connect_info[1])
- sock.connect(connect_info)
-
return sock
def set_inferior_startup_launch(self):
@@ -219,7 +221,11 @@ class GdbRemoteTestCaseBase(TestBase):
self._inferior_startup = self._STARTUP_ATTACH_MANUALLY
def get_debug_monitor_command_line_args(self, attach_pid=None):
- commandline_args = self.debug_monitor_extra_args + ["localhost:{}".format(self.port)]
+ if lldb.remote_platform:
+ commandline_args = self.debug_monitor_extra_args + ["*:{}".format(self.port)]
+ else:
+ commandline_args = self.debug_monitor_extra_args + ["localhost:{}".format(self.port)]
+
if attach_pid:
commandline_args += ["--attach=%d" % attach_pid]
if self.named_pipe_path:
@@ -284,16 +290,23 @@ class GdbRemoteTestCaseBase(TestBase):
logger.warning("failed to terminate server for debug monitor: {}; ignoring".format(sys.exc_info()[0]))
self.addTearDownHook(shutdown_debug_monitor)
- # Create a socket to talk to the server
- try:
- self.sock = self.create_socket()
- return server
- except socket.error as serr:
- # We're only trying to handle connection refused.
- if serr.errno != errno.ECONNREFUSED:
- raise serr
- # We should close the server here to be safe.
- server.terminate()
+ connect_attemps = 0
+ MAX_CONNECT_ATTEMPTS = 10
+
+ while connect_attemps < MAX_CONNECT_ATTEMPTS:
+ # Create a socket to talk to the server
+ try:
+ self.sock = self.create_socket()
+ return server
+ except socket.error as serr:
+ # We're only trying to handle connection refused.
+ if serr.errno != errno.ECONNREFUSED:
+ raise serr
+ time.sleep(0.5)
+ connect_attemps += 1
+
+ # We should close the server here to be safe.
+ server.terminate()
# Increment attempts.
print("connect to debug monitor on port %d failed, attempt #%d of %d" % (self.port, attempts + 1, MAX_ATTEMPTS))
More information about the lldb-commits
mailing list