Unfortunately it turns out the Android test runner requires
the isolated script flag to be in its current form, or it
doesn't work. This means we have to keep translating the
flag name.
We can get rid of the isolated_script_test_output flag
at least.
Tbr: mbonadei@webrtc.org
Bug: chromium:1051927
Change-Id: I4fdbff980e65332b757b1c95aa6587328411c0ed
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171809
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30907}
Since we're now calling the shots of what flags get passed in the
recipes, we can just pass the right ones right away and remove all
the flag renaming.
--isolated-script-test-output is no longer passed, so we can just
remove it. The recipe is currently passing
--isolated-script-perf-test-output but I will start passing the
underscore version shortly.
Bug: chromium:1051927
Change-Id: I571090e62f79ea17c793295df7f5abb21f45d207
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171681
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30878}
It's better to set this to the right value in the C++ API rather
than the hack in catapult_uploader.py.
Bug: chromium:1029452
Change-Id: Ia942ff22f8422874cd226e6a7fdce20333ac4a50
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170632
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30817}
The problem that has stopped the uploads from working is likely that
json.dump writes -Infinity when encountering float('-inf'), but not
all JSON parsers handle that. Notably, the dashboard JSON library
doesn't when running in compressing mode.
I think the real fix is to land the float->double CL for the histogram
proto - I think we will not get float('inf') values then. Apply
this hack in the meantime.
Also remove allbins and story hacks, they're likely worse than the
defaults anyway.
Bug: chromium:1029452
Tbr: mbonadei@webrtc.org
Change-Id: I98e36307cc144bbe6878ba9d93c0a609cab71418
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170626
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30808}
To avoid confusion what we're actually uploading. The out file is
for debugging.
Bug: chromium:1029452
Change-Id: I6856a8466b58bb4b8d2eac35df7c629af7002b2c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170441
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30791}
We need to modify sys.path before we import anything from catapult.
Unfortunately we need to modify it according to --outdir, so it needs
to happen at runtime rather than import time.
I try to split the script into a main which just sets up command line
args and sys.path and then imports the main script. This makes it less
likely that future maintainers will import something too early.
Bug: chromium:1029452
Change-Id: I16bf6257269ab8ab90dd74bff7880de8b5fb8071
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170341
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30788}
This partially reverts commit 7427fc6560b0cdf67912863162c72cfde2ed0cd6.
Turns out proto importing is broken on the catapult side. A fix is
coming. Until then I'll have to use the old JSON way.
Bug: chromium:1029452
Change-Id: Ib5c43d721fe6c4e2639a0d518f4fa69b42b6c388
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170230
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30761}
The catapult code has learned how to deserialize protos, so we don't
need JSON as a middle step.
Also, set summary options to false for now to avoid polluting the
dashboard with _avg, _count for each metric. We don't use those
anyway. The durable solution is to set these from the histogram
writer, but catapult doesn't read the summary options correctly
from the proto yet.
Bug: chromium:1029452
Change-Id: I59d300fd34d36df836064ff41f6d0bf75bd6695e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170104
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30737}
When the assertion triggers, manual action is likely needed. This
CL changes the error message to make it more clear.
No-Try: True
Bug: webrtc:11369
Change-Id: I7d8b04deef7638e715b12e6dceeee9cc2ce2cc66
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168761
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30553}
I think it works, just want to make sure (and I think it's good to
print something for the build step).
Bug: chromium:1029452
Change-Id: I8df6818a2fb6305b688ae4ae7517159d1ca5b544
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168602
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@google.com>
Cr-Commit-Position: refs/heads/master@{#30528}
For now I think I have to run mb + ninja on testers in order to
generate the proto used by webrtc_dashboard_upload.py. I would prefer
a solution where we build on the builder and distribute via isolate,
but let's do this for now (it will have to be the solution if
isolate doesn't work out).
Also remove obsolete entries. I think the previous code used to try to
list all bots, but it clearly failed at that. The error one gets when
an unlisted bot runs mb is very clear anyway.
Bug: chromium:1029452
Change-Id: I2f4dda24ef0fb0337439c30c065b29b0da6bbe16
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168527
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30521}
I had to pivot and make tests output protos instead of JSON.
I basically move the proto -> JSON conversion into this script instead
of doing it in the test binary.
This is a temporary state. Later it will be enough to just read up
the file and pass it straight to the Catapult implementation, once
it learns to de-serialize the proto directly.
Bug: chromium:1029452
Change-Id: I7ce992eeeb1a5ae0f20eed54174b08b496e74dfd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166920
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30419}
`gn format` recently [1] changed its formatting behavior
for deps, source, and a few other elements when they
are assigned (with =) single-element lists to be consistent
with the formatting of updates (with +=) with single-element.
Now that we've rolled in a GN binary with the change,
reformat all files so that people don't get presubmit
warnings due to this.
CL generated with:
$ git ls-files | grep BUILD.gn | xargs gn format
$ gn format build_overrides/build.gni
$ gn format build_overrides/gtest.gni
$ gn format modules/audio_coding/audio_coding.gni
$ gn format webrtc.gni
$ gn format .gn
Plus a few manual changes to add exceptions for
"public_deps" (after changing these lines the presubmit
started to complain).
[1] - https://gn-review.googlesource.com/c/gn/+/6860
Bug: webrtc:11302
Change-Id: Iac29d23c1618ebef925c972e2891cd9f4e8cd613
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166882
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30334}
Before reformatting GN files (see [1] for why this is needed), the
presubmit check to ensure targets are not violating package boundaries
needs to be fixed because its regular expressions don't always work with
the new format.
This CL removes the parsing of line numbers to relax the regular
expressions without losing any functionality.
Error before this CL:
***************
<PATH>/webrtc/src/BUILD.gn:674 in target 'android_junit_tests':
Source file 'examples/androidjunit/src/org/appspot/apprtc/BluetoothManagerTest.java'
crosses boundary of package 'examples'.
<PATH>/webrtc/src/BUILD.gn:675 in target 'android_junit_tests':
Source file 'examples/androidjunit/src/org/appspot/apprtc/DirectRTCClientTest.java'
crosses boundary of package 'examples'.
<PATH>/webrtc/src/BUILD.gn:676 in target 'android_junit_tests':
Source file 'examples/androidjunit/src/org/appspot/apprtc/TCPChannelClientTest.java'
crosses boundary of package 'examples'.
<PATH>/webrtc/src/BUILD.gn:677 in target 'android_junit_tests':
Source file 'sdk/android/tests/src/org/webrtc/AndroidVideoDecoderTest.java'
crosses boundary of package 'sdk'.
<PATH>/webrtc/src/BUILD.gn:678 in target 'android_junit_tests':
Source file 'sdk/android/tests/src/org/webrtc/CameraEnumerationTest.java'
crosses boundary of package 'sdk'.
***************
Error after this CL:
***************
<PATH>/webrtc/src/BUILD.gn in target 'android_junit_tests':
Source file 'examples/androidjunit/src/org/appspot/apprtc/BluetoothManagerTest.java'
crosses boundary of package 'examples'.
<PATH>/webrtc/src/BUILD.gn in target 'android_junit_tests':
Source file 'examples/androidjunit/src/org/appspot/apprtc/DirectRTCClientTest.java'
crosses boundary of package 'examples'.
<PATH>/webrtc/src/BUILD.gn in target 'android_junit_tests':
Source file 'examples/androidjunit/src/org/appspot/apprtc/TCPChannelClientTest.java'
crosses boundary of package 'examples'.
<PATH>/webrtc/src/BUILD.gn in target 'android_junit_tests':
Source file 'sdk/android/tests/src/org/webrtc/AndroidVideoDecoderTest.java'
crosses boundary of package 'sdk'.
<PATH>/webrtc/src/BUILD.gn in target 'android_junit_tests':
Source file 'sdk/android/tests/src/org/webrtc/CameraEnumerationTest.java'
crosses boundary of package 'sdk'.
***************
[1] - https://gn-review.googlesource.com/c/gn/+/6860
Bug: webrtc:11302
Change-Id: Ia39387d089a0c56a2c3ad9a7264c20eb5a38ac93
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166535
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30331}
This script will be used when tests write proto-backed JSON. It still
has to reside source-side because we need to access the catapult Python
API to get at HistogramSet and reserved_infos, etc.
WebRTC tests will write proto-backed JSON, and this script can read
it because the Histogram class has been made capable of doing it.
Build information diagnostics are added, and then we upload in the
old JSON format (the dashboard can read the new format as well, but
there's no reason to implement export to the new format at this point).
We could imagine more outlandish solutions where the test binaries
themselves do the uploading, but then we would have to pass the
build information to them, and they would have to upload from the
shards. Alternatively, we could pass build information to tests so
they write it right into the histograms.
This solution is probably the best one for now since it's
1) consistent with how Chromium does it
2) flexible in the right ways
3) we don't have to worry if uploading from shards even works.
Bug: webrtc:11084
Change-Id: I8888ce9f24e0ca58f984d2c2e9af7740ee5e89b6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166464
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30301}
Defects are newly detected by the latest clang version.
This CL mutes them.
Rationale:
* They concern third party code we cannot update here.
* They block chromium roll (containing said clang version).
Bug: webrtc:11110
Change-Id: I7abdfee7e42fd8e89d2296f18690fbda449509d1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160081
Commit-Queue: Yves Gerey <yvesg@google.com>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29860}
This is a manual roll of [1]:
"""
Moved from manual deps into //third_party/android_deps:
* Guava-jre
* AutoService
* ErrorProne
It looks like this CL adds other libraries, but they are just those
that already existed within errorprone-ant.jar.
This updates how ErrorProne is invoked to the JDK9+ method of being a
proper javac plugin. This move necessitated moving the above libraries
into android_deps, because the version of Guava that was already in
android_deps was conflicting with our non-android_deps one.
"""
On top of that, errorprone flags have been removed,
since they aren't recognized anymore:
"error: invalid flag: -Xep:ParameterNotNullable:ERROR"
A follow-up CL will re-activate them with proper invokation.
[1] https://chromium-review.googlesource.com/c/chromium/src/+/1885951
Manual chromium roll: Compile using JDK 11.
Bug: webrtc:11102, chromium:693079
Change-Id: I6fdc700e71bcf39efae948d6195c97700c9cb978
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160011
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Yves Gerey <yvesg@google.com>
Cr-Commit-Position: refs/heads/master@{#29842}
This effectively makes WebRTC upload histogram sets instead of Chart
JSON. Histogram sets is the newest format used by Chromium. I'm doing
this because it's nice to use the most modern thing, but mostly because
it's the default for PinPoint. This means I don't have to implement and
support a new read quest for Chart JSON.
This script has to be source side, because we need third_party/catapult
to write correct histograms. This script will be called from recipes.
I also considered generating histogram JSON directly in
test/testsupport/perf_test.cc, which could have avoided this conversion
from Chart JSON to histogram sets, but I can't because there is no C++
API for histogram sets.
Bug: webrtc:11084
Change-Id: If0d2315d2057112b3c2d54a9cfd12e59b5858a18
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159780
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29818}