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 GoogleTestgtest_also_run_disabled_tests
works as it normally does as wellOther 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.