Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(378)

Side by Side Diff: build/android/pylib/base/base_test_runner.py

Issue 392113002: [android_webview] Support null AwWebResourceResponse headers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: use equals instead of == Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Base class for running tests on a single device.""" 5 """Base class for running tests on a single device."""
6 6
7 import logging 7 import logging
8 import time 8 import time
9 9
10 from pylib import ports 10 from pylib import ports
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 port: port on which we want to the http server bind. 108 port: port on which we want to the http server bind.
109 extra_config_contents: Extra config contents for the HTTP server. 109 extra_config_contents: Extra config contents for the HTTP server.
110 """ 110 """
111 self._http_server = lighttpd_server.LighttpdServer( 111 self._http_server = lighttpd_server.LighttpdServer(
112 document_root, port=port, extra_config_contents=extra_config_contents) 112 document_root, port=port, extra_config_contents=extra_config_contents)
113 if self._http_server.StartupHttpServer(): 113 if self._http_server.StartupHttpServer():
114 logging.info('http server started: http://localhost:%s', 114 logging.info('http server started: http://localhost:%s',
115 self._http_server.port) 115 self._http_server.port)
116 else: 116 else:
117 logging.critical('Failed to start http server') 117 logging.critical('Failed to start http server')
118 self._ForwardPortsForHttpServer() 118 #self._ForwardPortsForHttpServer()
119 return (self._forwarder_device_port, self._http_server.port) 119 return (self._forwarder_device_port, self._http_server.port)
120 120
121 def _ForwardPorts(self, port_pairs): 121 def _ForwardPorts(self, port_pairs):
122 """Forwards a port.""" 122 """Forwards a port."""
123 Forwarder.Map(port_pairs, self.device, self.tool) 123 Forwarder.Map(port_pairs, self.device, self.tool)
124 124
125 def _UnmapPorts(self, port_pairs): 125 def _UnmapPorts(self, port_pairs):
126 """Unmap previously forwarded ports.""" 126 """Unmap previously forwarded ports."""
127 for (device_port, _) in port_pairs: 127 for (device_port, _) in port_pairs:
128 Forwarder.UnmapDevicePort(device_port, self.device) 128 Forwarder.UnmapDevicePort(device_port, self.device)
(...skipping 13 matching lines...) Expand all
142 The forwarder forwards HTTP requests and responses between host and device. 142 The forwarder forwards HTTP requests and responses between host and device.
143 """ 143 """
144 self._ForwardPorts([(self._forwarder_device_port, self._http_server.port)]) 144 self._ForwardPorts([(self._forwarder_device_port, self._http_server.port)])
145 145
146 def _RestartHttpServerForwarderIfNecessary(self): 146 def _RestartHttpServerForwarderIfNecessary(self):
147 """Restarts the forwarder if it's not open.""" 147 """Restarts the forwarder if it's not open."""
148 # Checks to see if the http server port is being used. If not forwards the 148 # Checks to see if the http server port is being used. If not forwards the
149 # request. 149 # request.
150 # TODO(dtrainor): This is not always reliable because sometimes the port 150 # TODO(dtrainor): This is not always reliable because sometimes the port
151 # will be left open even after the forwarder has been killed. 151 # will be left open even after the forwarder has been killed.
152 return
benm (inactive) 2014/07/23 01:09:40 is this right?
mkosiba (inactive) 2014/07/24 16:08:28 accident. reverted.
152 if not ports.IsDevicePortUsed(self.device, self._forwarder_device_port): 153 if not ports.IsDevicePortUsed(self.device, self._forwarder_device_port):
153 self._ForwardPortsForHttpServer() 154 self._ForwardPortsForHttpServer()
154 155
155 def ShutdownHelperToolsForTestSuite(self): 156 def ShutdownHelperToolsForTestSuite(self):
156 """Shuts down the server and the forwarder.""" 157 """Shuts down the server and the forwarder."""
157 if self._http_server: 158 if self._http_server:
158 self._UnmapPorts([(self._forwarder_device_port, self._http_server.port)]) 159 self._UnmapPorts([(self._forwarder_device_port, self._http_server.port)])
159 self._http_server.ShutdownHttpServer() 160 self._http_server.ShutdownHttpServer()
160 if self._spawning_server: 161 if self._spawning_server:
161 self._spawning_server.Stop() 162 self._spawning_server.Stop()
162 163
163 def CleanupSpawningServerState(self): 164 def CleanupSpawningServerState(self):
164 """Tells the spawning server to clean up any state. 165 """Tells the spawning server to clean up any state.
165 166
166 If the spawning server is reused for multiple tests, this should be called 167 If the spawning server is reused for multiple tests, this should be called
167 after each test to prevent tests affecting each other. 168 after each test to prevent tests affecting each other.
168 """ 169 """
169 if self._spawning_server: 170 if self._spawning_server:
170 self._spawning_server.CleanupState() 171 self._spawning_server.CleanupState()
171 172
172 def LaunchChromeTestServerSpawner(self): 173 def LaunchChromeTestServerSpawner(self):
173 """Launches test server spawner.""" 174 """Launches test server spawner."""
174 server_ready = False 175 server_ready = False
175 error_msgs = [] 176 error_msgs = []
176 # TODO(pliard): deflake this function. The for loop should be removed as 177 # TODO(pliard): deflake this function. The for loop should be removed as
177 # well as IsHttpServerConnectable(). spawning_server.Start() should also 178 # well as IsHttpServerConnectable(). spawning_server.Start() should also
178 # block until the server is ready. 179 # block until the server is ready.
179 # Try 3 times to launch test spawner server. 180 # Try 3 times to launch test spawner server.
181 return
180 for _ in xrange(0, 3): 182 for _ in xrange(0, 3):
181 self.test_server_spawner_port = ports.AllocateTestServerPort() 183 self.test_server_spawner_port = ports.AllocateTestServerPort()
182 self._ForwardPorts( 184 self._ForwardPorts(
183 [(self.test_server_spawner_port, self.test_server_spawner_port)]) 185 [(self.test_server_spawner_port, self.test_server_spawner_port)])
184 self._spawning_server = SpawningServer(self.test_server_spawner_port, 186 self._spawning_server = SpawningServer(self.test_server_spawner_port,
185 self.device, 187 self.device,
186 self.tool) 188 self.tool)
187 self._spawning_server.Start() 189 self._spawning_server.Start()
188 server_ready, error_msg = ports.IsHttpServerConnectable( 190 server_ready, error_msg = ports.IsHttpServerConnectable(
189 '127.0.0.1', self.test_server_spawner_port, path='/ping', 191 '127.0.0.1', self.test_server_spawner_port, path='/ping',
190 expected_read='ready') 192 expected_read='ready')
191 if server_ready: 193 if server_ready:
192 break 194 break
193 else: 195 else:
194 error_msgs.append(error_msg) 196 error_msgs.append(error_msg)
195 self._spawning_server.Stop() 197 self._spawning_server.Stop()
196 # Wait for 2 seconds then restart. 198 # Wait for 2 seconds then restart.
197 time.sleep(2) 199 time.sleep(2)
198 if not server_ready: 200 if not server_ready:
199 logging.error(';'.join(error_msgs)) 201 logging.error(';'.join(error_msgs))
200 raise Exception('Can not start the test spawner server.') 202 raise Exception('Can not start the test spawner server.')
201 self._PushTestServerPortInfoToDevice() 203 self._PushTestServerPortInfoToDevice()
OLDNEW
« no previous file with comments | « android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientShouldInterceptRequestTest.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698