run_in_headless_android_emulator: add support for reverse port forwarding

This commit is contained in:
Simon Sapin 2018-07-19 19:16:07 +02:00
parent d7495a2297
commit 94d1acbcfd
2 changed files with 14 additions and 0 deletions

View file

@ -139,6 +139,14 @@ def forward_webdriver(adb, args):
check_call(adb + ["forward", port, port])
sys.stderr.write("Forwarding WebDriver port %s to the emulator\n" % webdriver_port)
split = os.environ.get("EMULATOR_REVERSE_FORWARD_PORTS", "").split(",")
ports = [int(part) for part in split if part]
for port in ports:
port = "tcp:%s" % port
check_call(adb + ["reverse", port, port])
if ports:
sys.stderr.write("Reverse-forwarding ports %s\n" % ", ".join(map(str, ports)))
def extract_arg(name, args):
for _, arg in extract_args(name, args):

View file

@ -84,6 +84,7 @@ class ServoWebDriverBrowser(Browser):
self.proc = None
self.debug_info = debug_info
self.hosts_path = write_hosts_file(server_config)
self.server_ports = server_config.ports if server_config else {}
self.command = None
self.user_stylesheets = user_stylesheets if user_stylesheets else []
@ -94,6 +95,11 @@ class ServoWebDriverBrowser(Browser):
env = os.environ.copy()
env["HOST_FILE"] = self.hosts_path
env["RUST_BACKTRACE"] = "1"
env["EMULATOR_REVERSE_FORWARD_PORTS"] = ",".join(
str(port)
for _protocol, ports in self.server_ports.items()
for port in ports
)
debug_args, command = browser_command(
self.binary,