| Index: build/android/pylib/base/base_test_runner.py
|
| diff --git a/build/android/pylib/base/base_test_runner.py b/build/android/pylib/base/base_test_runner.py
|
| index df04f9fb22da9408b8eb2371361a2cbddfc24025..9173b729f59bb6b0e7473da56048c1ba0d6dbf91 100644
|
| --- a/build/android/pylib/base/base_test_runner.py
|
| +++ b/build/android/pylib/base/base_test_runner.py
|
| @@ -44,14 +44,12 @@ class BaseTestRunner(object):
|
| self.adb = android_commands.AndroidCommands(device=device)
|
| self.tool = CreateTool(tool, self.adb)
|
| self._http_server = None
|
| - self._forwarder = None
|
| self._forwarder_device_port = 8000
|
| self.forwarder_base_url = ('http://localhost:%d' %
|
| self._forwarder_device_port)
|
| self.flags = FlagChanger(self.adb)
|
| self.flags.AddFlags(['--disable-fre'])
|
| self._spawning_server = None
|
| - self._spawner_forwarder = None
|
| # We will allocate port for test server spawner when calling method
|
| # LaunchChromeTestServerSpawner and allocate port for test server when
|
| # starting it in TestServerThread.
|
| @@ -90,7 +88,6 @@ class BaseTestRunner(object):
|
|
|
| def SetUp(self):
|
| """Run once before all tests are run."""
|
| - Forwarder.KillDevice(self.adb, self.tool)
|
| self.InstallTestPackage()
|
| push_size_before = self.adb.GetPushSizeInfo()
|
| if self._push_deps:
|
| @@ -128,49 +125,47 @@ class BaseTestRunner(object):
|
| self._http_server.port)
|
| else:
|
| logging.critical('Failed to start http server')
|
| - self.StartForwarderForHttpServer()
|
| + self._ForwardPortsForHttpServer()
|
| return (self._forwarder_device_port, self._http_server.port)
|
|
|
| - def _ForwardPort(self, port_pairs):
|
| - """Creates a forwarder instance if needed and forward a port."""
|
| - if not self._forwarder:
|
| - self._forwarder = Forwarder(self.adb, self.build_type)
|
| - self._forwarder.Run(port_pairs, self.tool)
|
| + def _ForwardPorts(self, port_pairs):
|
| + """Forwards a port."""
|
| + Forwarder.Map(port_pairs, self.adb, self.build_type, self.tool)
|
|
|
| + def _UnmapPorts(self, port_pairs):
|
| + """Unmap previously forwarded ports."""
|
| + for (device_port, _) in port_pairs:
|
| + Forwarder.UnmapDevicePort(device_port, self.adb)
|
| +
|
| + # Deprecated: Use ForwardPorts instead.
|
| def StartForwarder(self, port_pairs):
|
| """Starts TCP traffic forwarding for the given |port_pairs|.
|
|
|
| Args:
|
| host_port_pairs: A list of (device_port, local_port) tuples to forward.
|
| """
|
| - self._ForwardPort(port_pairs)
|
| + self._ForwardPorts(port_pairs)
|
|
|
| - def StartForwarderForHttpServer(self):
|
| + def _ForwardPortsForHttpServer(self):
|
| """Starts a forwarder for the HTTP server.
|
|
|
| The forwarder forwards HTTP requests and responses between host and device.
|
| """
|
| - self._ForwardPort([(self._forwarder_device_port, self._http_server.port)])
|
| + self._ForwardPorts([(self._forwarder_device_port, self._http_server.port)])
|
|
|
| - def RestartHttpServerForwarderIfNecessary(self):
|
| + def _RestartHttpServerForwarderIfNecessary(self):
|
| """Restarts the forwarder if it's not open."""
|
| # Checks to see if the http server port is being used. If not forwards the
|
| # request.
|
| # TODO(dtrainor): This is not always reliable because sometimes the port
|
| # will be left open even after the forwarder has been killed.
|
| - if not ports.IsDevicePortUsed(self.adb,
|
| - self._forwarder_device_port):
|
| - self.StartForwarderForHttpServer()
|
| + if not ports.IsDevicePortUsed(self.adb, self._forwarder_device_port):
|
| + self._ForwardPortsForHttpServer()
|
|
|
| def ShutdownHelperToolsForTestSuite(self):
|
| """Shuts down the server and the forwarder."""
|
| - # Forwarders should be killed before the actual servers they're forwarding
|
| - # to as they are clients potentially with open connections and to allow for
|
| - # proper hand-shake/shutdown.
|
| - Forwarder.KillDevice(self.adb, self.tool)
|
| - if self._forwarder:
|
| - self._forwarder.Close()
|
| if self._http_server:
|
| + self._UnmapPorts([(self._forwarder_device_port, self._http_server.port)])
|
| self._http_server.ShutdownHttpServer()
|
| if self._spawning_server:
|
| self._spawning_server.Stop()
|
| @@ -195,12 +190,11 @@ class BaseTestRunner(object):
|
| # Try 3 times to launch test spawner server.
|
| for i in xrange(0, 3):
|
| self.test_server_spawner_port = ports.AllocateTestServerPort()
|
| - self._ForwardPort(
|
| + self._ForwardPorts(
|
| [(self.test_server_spawner_port, self.test_server_spawner_port)])
|
| self._spawning_server = SpawningServer(self.test_server_spawner_port,
|
| self.adb,
|
| self.tool,
|
| - self._forwarder,
|
| self.build_type)
|
| self._spawning_server.Start()
|
| server_ready, error_msg = ports.IsHttpServerConnectable(
|
|
|