def LaunchChromeTestServerSpawner(self): """Launches test server spawner.""" server_ready = False error_msgs = [] # TODO(pliard): deflake this function. The for loop should be removed as # well as IsHttpServerConnectable(). spawning_server.Start() should also # block until the server is ready. # Try 3 times to launch test spawner server. for i in xrange(0, 3): self.test_server_spawner_port = ports.AllocateTestServerPort() 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.build_type) self._spawning_server.Start() server_ready, error_msg = ports.IsHttpServerConnectable( '127.0.0.1', self.test_server_spawner_port, path='/ping', expected_read='ready') if server_ready: break else: error_msgs.append(error_msg) self._spawning_server.Stop() # Wait for 2 seconds then restart. time.sleep(2) if not server_ready: logging.error(';'.join(error_msgs)) raise Exception('Can not start the test spawner server.') self._PushTestServerPortInfoToDevice()
def __init__(self, test_options, device, test_package): """Single test suite attached to a single device. Args: test_options: A GTestOptions object. device: Device to run the tests. test_package: An instance of TestPackage class. """ super(TestRunner, self).__init__(device, test_options.tool) self.test_package = test_package self.test_package.tool = self.tool self._test_arguments = test_options.test_arguments timeout = test_options.timeout if timeout == 0: timeout = 60 # On a VM (e.g. chromium buildbots), this timeout is way too small. if os.environ.get('BUILDBOT_SLAVENAME'): timeout = timeout * 2 self._timeout = timeout * self.tool.GetTimeoutScale() if _TestSuiteRequiresHighPerfMode(self.test_package.suite_name): self._perf_controller = perf_control.PerfControl(self.device) if _TestSuiteRequiresMockTestServer(self.test_package.suite_name): self._servers = [ local_test_server_spawner.LocalTestServerSpawner( ports.AllocateTestServerPort(), self.device, self.tool) ] else: self._servers = []
def LaunchChromeTestServerSpawner(self): """Launches test server spawner.""" server_ready = False error_msgs = [] # Try 3 times to launch test spawner server. for i in xrange(0, 3): # Do not allocate port for test server here. We will allocate # different port for individual test in TestServerThread. self.test_server_spawner_port = ports.AllocateTestServerPort() self._spawning_server = SpawningServer( self.test_server_spawner_port, self.adb, self.tool, self.build_type) self._spawning_server.Start() server_ready, error_msg = ports.IsHttpServerConnectable( '127.0.0.1', self.test_server_spawner_port, path='/ping', expected_read='ready') if server_ready: break else: error_msgs.append(error_msg) self._spawning_server.Stop() # Wait for 2 seconds then restart. time.sleep(2) if not server_ready: logging.error(';'.join(error_msgs)) raise Exception('Can not start the test spawner server.') self._PushTestServerPortInfoToDevice() self._spawner_forwarder = self._CreateAndRunForwarder( self.adb, [(self.test_server_spawner_port, self.test_server_spawner_port)], self.tool, '127.0.0.1', self.build_type)
def __init__(self, android_platform_backend, browser_options, backend_settings, output_profile_path, extensions_to_load, target_arch): assert isinstance( android_platform_backend, android_platform_backend_module.AndroidPlatformBackend) super(AndroidBrowserBackend, self).__init__( android_platform_backend, supports_tab_control=backend_settings.supports_tab_control, supports_extensions=False, browser_options=browser_options, output_profile_path=output_profile_path, extensions_to_load=extensions_to_load) if len(extensions_to_load) > 0: raise browser_backend.ExtensionsNotSupportedException( 'Android browser does not support extensions.') # Initialize fields so that an explosion during init doesn't break in Close. self._backend_settings = backend_settings self._target_arch = target_arch self._saved_sslflag = '' # TODO(tonyg): This is flaky because it doesn't reserve the port that it # allocates. Need to fix this. self._port = ports.AllocateTestServerPort() # TODO(wuhu): Move to network controller backend. self.platform_backend.InstallTestCa() # Kill old browser. self._KillBrowser() if self.device.HasRoot() or self.device.NeedsSU(): if self.browser_options.profile_dir: self.platform_backend.PushProfile( self._backend_settings.package, self.browser_options.profile_dir) elif not self.browser_options.dont_override_profile: self.platform_backend.RemoveProfile( self._backend_settings.package, self._backend_settings.profile_ignore_list) if self.browser_options.netsim: assert self.platform_backend.use_rndis_forwarder, ( 'Netsim requires RNDIS forwarding.') self.wpr_port_pairs = forwarders.PortPairs( http=forwarders.PortPair(0, 80), https=forwarders.PortPair(0, 443), dns=forwarders.PortPair(0, 53)) # Set the debug app if needed. self.platform_backend.SetDebugApp(self._backend_settings.package)
def individual_device_set_up(dev, host_device_tuples): # Install test APK. self._delegate.Install(dev) # Push data dependencies. external_storage = dev.GetExternalStoragePath() host_device_tuples = [(h, d if d is not None else external_storage) for h, d in host_device_tuples] dev.PushChangedFiles(host_device_tuples) self._servers[str(dev)] = [] if self.TestPackage() in _SUITE_REQUIRES_TEST_SERVER_SPAWNER: self._servers[str(dev)].append( local_test_server_spawner.LocalTestServerSpawner( ports.AllocateTestServerPort(), dev, self.GetTool(dev))) for s in self._servers[str(dev)]: s.SetUp()
def AllocateTestServerPort(): return ports.AllocateTestServerPort()
def __init__(self, app_backend, pid, name): self._app_backend = app_backend self._pid = pid self._name = name self._local_port = ports.AllocateTestServerPort() self._devtools_client = None