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.