Add possibility of upload check for pc perf tests
Presubmit bot failures are unrelated to the cl.
No-Presubmit: True
Bug: webrtc:12162
Change-Id: I598d3aea8df9429bdff18b80a400c358fa1461d2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186123
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32592}
diff --git a/tools_webrtc/perf/webrtc_dashboard_upload.py b/tools_webrtc/perf/webrtc_dashboard_upload.py
index 25de226..0d42e9c 100644
--- a/tools_webrtc/perf/webrtc_dashboard_upload.py
+++ b/tools_webrtc/perf/webrtc_dashboard_upload.py
@@ -24,54 +24,54 @@
def _CreateParser():
parser = argparse.ArgumentParser()
- parser.add_argument('--perf-dashboard-machine-group',
- required=True,
+ parser.add_argument('--perf-dashboard-machine-group', required=True,
help='The "master" the bots are grouped under. This '
'string is the group in the the perf dashboard path '
'group/bot/perf_id/metric/subtest.')
- parser.add_argument('--bot',
- required=True,
+ parser.add_argument('--bot', required=True,
help='The bot running the test (e.g. '
- 'webrtc-win-large-tests).')
- parser.add_argument(
- '--test-suite',
- required=True,
- help='The key for the test in the dashboard (i.e. what '
- 'you select in the top-level test suite selector in the '
- 'dashboard')
- parser.add_argument('--webrtc-git-hash',
- required=True,
+ 'webrtc-win-large-tests).')
+ parser.add_argument('--test-suite', required=True,
+ help='The key for the test in the dashboard (i.e. what '
+ 'you select in the top-level test suite selector in '
+ 'the dashboard')
+ parser.add_argument('--webrtc-git-hash', required=True,
help='webrtc.googlesource.com commit hash.')
- parser.add_argument('--commit-position',
- type=int,
- required=True,
+ parser.add_argument('--commit-position', type=int, required=True,
help='Commit pos corresponding to the git hash.')
- parser.add_argument('--build-page-url',
- required=True,
+ parser.add_argument('--build-page-url', required=True,
help='URL to the build page for this build.')
- parser.add_argument('--dashboard-url',
- required=True,
+ parser.add_argument('--dashboard-url', required=True,
help='Which dashboard to use.')
- parser.add_argument('--input-results-file',
- type=argparse.FileType(),
+ parser.add_argument('--input-results-file', type=argparse.FileType(),
required=True,
help='A JSON file with output from WebRTC tests.')
- parser.add_argument('--output-json-file',
- type=argparse.FileType('w'),
+ parser.add_argument('--output-json-file', type=argparse.FileType('w'),
help='Where to write the output (for debugging).')
- parser.add_argument(
- '--outdir',
- required=True,
- help='Path to the local out/ dir (usually out/Default)')
+ parser.add_argument('--outdir', required=True,
+ help='Path to the local out/ dir (usually out/Default)')
+ parser.add_argument('--wait-for-upload', action='store_true',
+ help='If specified, script will wait untill Chrome '
+ 'perf dashboard confirms that the data was succesfully '
+ 'proccessed and uploaded')
+ parser.add_argument('--wait-timeout-sec', type=int, default=1200,
+ help='Used only if wait-for-upload is True. Maximum '
+ 'amount of time in seconds that the script will wait '
+ 'for the confirmation.')
+ parser.add_argument('--wait-polling-period-sec', type=int, default=120,
+ help='Used only if wait-for-upload is True. Status '
+ 'will be requested from the Dashboard every '
+ 'wait-polling-period-sec seconds.')
return parser
def _ConfigurePythonPath(options):
# We just yank the python scripts we require into the PYTHONPATH. You could
- # also imagine a solution where we use for instance protobuf:py_proto_runtime
- # to copy catapult and protobuf code to out/. This is the convention in
- # Chromium and WebRTC python scripts. We do need to build histogram_pb2
- # however, so that's why we add out/ to sys.path below.
+ # also imagine a solution where we use for instance
+ # protobuf:py_proto_runtime to copy catapult and protobuf code to out/.
+ # This is the convention in Chromium and WebRTC python scripts. We do need
+ # to build histogram_pb2 however, so that's why we add out/ to sys.path
+ # below.
#
# It would be better if there was an equivalent to py_binary in GN, but
# there's not.
@@ -84,8 +84,9 @@
sys.path.insert(
0, os.path.join(checkout_root, 'third_party', 'protobuf', 'python'))
- # The webrtc_dashboard_upload gn rule will build the protobuf stub for python,
- # so put it in the path for this script before we attempt to import it.
+ # The webrtc_dashboard_upload gn rule will build the protobuf stub for
+ # python, so put it in the path for this script before we attempt to import
+ # it.
histogram_proto_path = os.path.join(options.outdir, 'pyproto', 'tracing',
'tracing', 'proto')
sys.path.insert(0, histogram_proto_path)