File: run.py

package info (click to toggle)
chromium 138.0.7204.183-1~deb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-proposed-updates
  • size: 6,080,960 kB
  • sloc: cpp: 34,937,079; ansic: 7,176,967; javascript: 4,110,704; python: 1,419,954; asm: 946,768; xml: 739,971; pascal: 187,324; sh: 89,623; perl: 88,663; objc: 79,944; sql: 50,304; cs: 41,786; fortran: 24,137; makefile: 21,811; php: 13,980; tcl: 13,166; yacc: 8,925; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (71 lines) | stat: -rwxr-xr-x 2,325 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/env python
# Copyright 2018 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""This script runs an automated Cronet native performance benchmark.

This script:
1. Starts HTTP and QUIC servers on the host machine.
2. Runs benchmark executable.

Prerequisites:
1. quic_server and cronet_native_perf_test have been built for the host machine,
   e.g. via:
     gn gen out/Release --args="is_debug=false"
     autoninja -C out/Release quic_server cronet_native_perf_test
2. sudo apt-get install lighttpd

Invocation:
./run.py

Output:
Benchmark timings are output to /tmp/cronet_perf_test_results.txt

"""

import json
import os
import shutil
import sys
import tempfile

REPOSITORY_ROOT = os.path.abspath(os.path.join(
    os.path.dirname(__file__), '..', '..', '..', '..'))

sys.path.append(os.path.join(REPOSITORY_ROOT, 'build', 'android'))
import lighttpd_server  # pylint: disable=wrong-import-position
sys.path.append(os.path.join(REPOSITORY_ROOT, 'components'))
from cronet.tools import perf_test_utils  # pylint: disable=wrong-import-position

def main():
  device = perf_test_utils.NativeDevice()
  # Start HTTP server.
  http_server_doc_root = perf_test_utils.GenerateHttpTestResources()
  config_file = tempfile.NamedTemporaryFile()
  http_server = lighttpd_server.LighttpdServer(http_server_doc_root,
      port=perf_test_utils.HTTP_PORT,
      base_config_path=config_file.name)
  perf_test_utils.GenerateLighttpdConfig(config_file, http_server_doc_root,
                                         http_server)
  assert http_server.StartupHttpServer()
  config_file.close()
  # Start QUIC server.
  quic_server_doc_root = perf_test_utils.GenerateQuicTestResources(device)
  quic_server = perf_test_utils.QuicServer(quic_server_doc_root)
  quic_server.StartupQuicServer(device)
  # Run test
  os.environ['LD_LIBRARY_PATH'] = perf_test_utils.BUILD_DIR
  device.RunShellCommand(
      [os.path.join(perf_test_utils.BUILD_DIR, 'cronet_native_perf_test'),
          json.dumps(perf_test_utils.GetConfig(device))],
      check_return=True)
  # Shutdown.
  quic_server.ShutdownQuicServer()
  shutil.rmtree(quic_server_doc_root)
  http_server.ShutdownHttpServer()
  shutil.rmtree(http_server_doc_root)


if __name__ == '__main__':
  main()