Forward adb port for reverse connect test cases

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
This commit is contained in:
Tamas Berghammer 2015-03-13 14:32:25 +00:00
parent 42f35defee
commit 27c8d36270
2 changed files with 12 additions and 5 deletions

View 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)

View 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])