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

Side by Side Diff: components/cronet/android/test/javaperftests/run.py

Issue 2799743009: [Cronet] Get Cronet's javaperftest running again (Closed)
Patch Set: Created 3 years, 8 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
« no previous file with comments | « components/cronet/android/test/javaperftests/android_rndis_forwarder.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2015 The Chromium Authors. All rights reserved. 2 # Copyright 2015 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """This script runs an automated Cronet performance benchmark. 6 """This script runs an automated Cronet performance benchmark.
7 7
8 This script: 8 This script:
9 1. Sets up "USB reverse tethering" which allow network traffic to flow from 9 1. Sets up "USB reverse tethering" which allow network traffic to flow from
10 an Android device connected to the host machine via a USB cable. 10 an Android device connected to the host machine via a USB cable.
11 2. Starts HTTP and QUIC servers on the host machine. 11 2. Starts HTTP and QUIC servers on the host machine.
12 3. Installs an Android app on the attached Android device and runs it. 12 3. Installs an Android app on the attached Android device and runs it.
13 4. Collects the results from the app. 13 4. Collects the results from the app.
14 14
15 Prerequisites: 15 Prerequisites:
16 1. A rooted (i.e. "adb root" succeeds) Android device connected via a USB cable 16 1. A rooted (i.e. "adb root" succeeds) Android device connected via a USB cable
17 to the host machine (i.e. the computer running this script). 17 to the host machine (i.e. the computer running this script).
18 2. quic_server has been built for the host machine, e.g. via: 18 2. quic_server has been built for the host machine, e.g. via:
19 gn gen out/Release --args="is_debug=false" 19 gn gen out/Release --args="is_debug=false"
20 ninja -C out/Release quic_server 20 ninja -C out/Release quic_server
21 3. cronet_perf_test_apk has been built for the Android device, e.g. via: 21 3. cronet_perf_test_apk has been built for the Android device, e.g. via:
22 ./components/cronet/tools/cr_cronet.py gn -r 22 ./components/cronet/tools/cr_cronet.py gn -r
23 ninja -C out/Release cronet_perf_test_apk 23 ninja -C out/Release cronet_perf_test_apk
24 4. If "sudo ufw status" doesn't say "Status: inactive", run "sudo ufw disable".
25 5. sudo apt-get install lighttpd
26 6. If the usb0 interface on the host keeps losing it's IPv4 address
27 (WaitFor(HasHostAddress) will keep failing), NetworkManager may need to be
28 told to leave usb0 alone with these commands:
29 sudo bash -c "printf \"\\n[keyfile]\
30 \\nunmanaged-devices=interface-name:usb0\\n\" \
31 >> /etc/NetworkManager/NetworkManager.conf"
32 sudo service network-manager restart
24 33
25 Invocation: 34 Invocation:
26 ./run.py 35 ./run.py
27 36
28 Output: 37 Output:
29 Benchmark timings are output by telemetry to stdout and written to 38 Benchmark timings are output by telemetry to stdout and written to
30 ./results.html 39 ./results.html
31 40
32 """ 41 """
33 42
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 226
218 def __init__(self, quic_server_doc_root): 227 def __init__(self, quic_server_doc_root):
219 self._process = None 228 self._process = None
220 self._quic_server_doc_root = quic_server_doc_root 229 self._quic_server_doc_root = quic_server_doc_root
221 230
222 def StartupQuicServer(self, device): 231 def StartupQuicServer(self, device):
223 # Chromium's presubmit checks aren't smart enough to understand 232 # Chromium's presubmit checks aren't smart enough to understand
224 # the redirect done in build/android/pylib/pexpect.py. 233 # the redirect done in build/android/pylib/pexpect.py.
225 # pylint: disable=no-member 234 # pylint: disable=no-member
226 self._process = pexpect.spawn(QUIC_SERVER, 235 self._process = pexpect.spawn(QUIC_SERVER,
227 ['--quic_in_memory_cache_dir=%s' % 236 ['--quic_response_cache_dir=%s' %
228 self._quic_server_doc_root, 237 self._quic_server_doc_root,
229 '--certificate_file=%s' % QUIC_CERT, 238 '--certificate_file=%s' % QUIC_CERT,
230 '--key_file=%s' % QUIC_KEY, 239 '--key_file=%s' % QUIC_KEY,
231 '--port=%d' % QUIC_PORT]) 240 '--port=%d' % QUIC_PORT])
232 assert self._process != None 241 assert self._process != None
233 # Wait for quic_server to start serving. 242 # Wait for quic_server to start serving.
234 waited_s = 0 243 waited_s = 0
235 while subprocess.call(['lsof', '-i', 'udp:%d' % QUIC_PORT, '-p', 244 while subprocess.call(['lsof', '-i', 'udp:%d' % QUIC_PORT, '-p',
236 '%d' % self._process.pid], 245 '%d' % self._process.pid],
237 stdout=open(os.devnull, 'w')) != 0: 246 stdout=open(os.devnull, 'w')) != 0:
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 benchmark_runner.main(runner_config) 349 benchmark_runner.main(runner_config)
341 # Shutdown. 350 # Shutdown.
342 quic_server.ShutdownQuicServer() 351 quic_server.ShutdownQuicServer()
343 shutil.rmtree(quic_server_doc_root) 352 shutil.rmtree(quic_server_doc_root)
344 http_server.ShutdownHttpServer() 353 http_server.ShutdownHttpServer()
345 shutil.rmtree(http_server_doc_root) 354 shutil.rmtree(http_server_doc_root)
346 355
347 356
348 if __name__ == '__main__': 357 if __name__ == '__main__':
349 main() 358 main()
OLDNEW
« no previous file with comments | « components/cronet/android/test/javaperftests/android_rndis_forwarder.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698