Forward adb port for reverse connect test cases
authorTamas Berghammer <tberghammer@google.com>
Fri, 13 Mar 2015 14:32:25 +0000 (14:32 +0000)
committerTamas Berghammer <tberghammer@google.com>
Fri, 13 Mar 2015 14:32:25 +0000 (14:32 +0000)
The test cases in TestStubReverseConnect are using a socket connection
from python to lldb-server running on a remote target. To enable the
socket connection an adb port forwarding have to be set up when the
remote target is android.

Differential revision: http://reviews.llvm.org/D8319

llvm-svn: 232170

lldb/test/tools/lldb-server/commandline/TestStubReverseConnect.py
lldb/test/tools/lldb-server/gdbremote_testcase.py

index 8701f92..1b0ac11 100644 (file)
@@ -47,6 +47,10 @@ class TestStubReverseConnect(gdbremote_testcase.GdbRemoteTestCaseBase):
         self.stub_hostname = "127.0.0.1"
         self.port = self.listener_port
 
+        triple = self.dbg.GetSelectedPlatform().GetTriple()
+        if re.match(".*-.*-.*-android", triple):
+            self.forward_adb_port(self.port, self.port, "reverse")
+
         # Start the stub.
         server = self.launch_debug_monitor(logfile=sys.stdout)
         self.assertIsNotNone(server)
index 8d769b8..e4999fb 100644 (file)
@@ -173,6 +173,13 @@ class GdbRemoteTestCaseBase(TestBase):
         # when the process truly dies.
         self.stub_sends_two_stop_notifications_on_kill = True
 
+    def forward_adb_port(self, source, target, direction):
+        def remove_port_forward():
+            subprocess.call(["adb", direction, "--remove", "tcp:%d" % source])
+        
+        subprocess.call(["adb", direction, "tcp:%d" % source, "tcp:%d" % target])
+        self.addTearDownHook(remove_port_forward)
+
     def create_socket(self):
         sock = socket.socket()
         logger = self.logger
@@ -194,11 +201,7 @@ class GdbRemoteTestCaseBase(TestBase):
 
         triple = self.dbg.GetSelectedPlatform().GetTriple()
         if re.match(".*-.*-.*-android", triple):
-            subprocess.call(["adb", "forward", "tcp:%d" % self.port, "tcp:%d" % self.port])
-            def remove_port_forward():
-                subprocess.call(["adb", "forward", "--remove", "tcp:%d" % self.port])
-
-            self.addTearDownHook(remove_port_forward)
+            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])