Hash :
d25c9d7f
Author :
Date :
2021-07-07T12:15:12
Add perf tests runner script. This script will be responsible for running the perf tests multiple times to try and stabilize measurements. We'll use it on the bots instead of just running the perf tests directly. Because the script invokes the binary multiple times, this slows down execution. Most significantly on Android, where we now need to use 20 shards, up from 6. Also marks one test as flaky on OpenGL. Bug: angleproject:6090 Change-Id: I5280035cb0bdb290a68dc6961a384eaf4b40dd4b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3011422 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
The ANGLE test harness is a harness around GoogleTest that provides functionality similar to the Chromium test harness. It features:
The ANGLE test harness accepts all standard GoogleTest arguments. The harness also accepts the following additional command-line arguments:
--batch-size limits the number of tests to run in each batch --batch-timeout limits the amount of time spent in each batch --bot-mode enables multi-process execution and test batching --debug-test-groups dumps the test config categories when using bot-mode --filter-file allows passing a larger gtest_filter via a file --histogram-json-file outputs a formatted JSON file for perf dashboards --max-processes limits the number of simuntaneous processes --results-directory specifies a directory to write test results to --results-file specifies a location for the JSON test result output --shard-count and --shard-index control the test sharding --test-timeout limits the amount of time spent in each test --flaky-retries allows for tests to fail a fixed number of times and still pass --disable-crash-handler forces off OS-level crash handling --isolated-outdir specifies a test artifacts directory --max-failures specifies a count of failures after which the harness early exits.
--isolated-script-test-output and --isolated-script-perf-test-output mirror --results-file
and --histogram-json-file respectively.
As well as the custom command-line arguments we support a few standard GoogleTest arguments:
gtest_filter works as it normally does with GoogleTest gtest_also_run_disabled_tests works as it normally does as well Other GoogleTest arguments are not supported although they may work.
angle_common and angle_util. The test runner has two main modes of operation: normal and bot mode.
During normal mode:
TestEventListener to record test results for our output JSON file. During bot mode:
gtest_filter file. See the source code for more details: TestSuite.h and TestSuite.cpp.