blob: 37e98092db40095bf018f4685499427a2bc5210f [file] [log] [blame] [view]
# Test filter files
## Summary
This directory contains files that list tests that are not yet ready to run in a
particular mode. For example - the `site-per-process.content_browsertests.filter` file
lists tests that should be excluded when running `content_browsertests` in
`--site-per-process` mode.
## File syntax
Contents of test filter files follow the syntax below:
- Empty lines are ignored.
- Any text after '#' on each line is treated as comments and ignored.
- All other lines specify a single [test name pattern][gtest_filter].
- Negative patterns: Patterns prefixed with the '-' character specify
tests to exclude from a test run.
- Positive patterns: All other patterns specify tests to include in a test
run.
A test will be executed if and only if it matches any of the positive patterns
but does not match any of the negative patterns (please see documentation of
[--gtest_filter][gtest_filter] for more details and examples).
Please see [https://crbug.com/587527] for discussion how "positive" and
"negative" test patterns should be combined in presence of both the
`--gtest_filter` and the `--test-launcher-filter-file` command line flags.
Example test filter file for excluding a set of tests:
```test.filter
# crbug.com/417518: Get tests working w/ --site-per-process
-BrowserTest.OtherRedirectsDontForkProcess
-ChromeRenderProcessHostTest.*
-ReferrerPolicyTest.HttpsRedirect
# crbug.com/448592: Get extension browsertests working w/ --site-per-process
-IsolatedAppTest.CookieIsolation
-IsolatedAppTest.CrossProcessClientRedirect
-IsolatedAppTest.IsolatedAppProcessModel
-IsolatedAppTest.SubresourceCookieIsolation
```
## Usage
When running tests on desktop platforms, the test filter file can be specified
using `--test-launcher-filter-file` command line flag. Example test invocation:
```bash
$ out/dbg/content_browsertests \
--site-per-process \
--test-launcher-filter-file=testing/buildbot/filters/site-per-process.content_browsertests.filter
```
When running tests on Android, the test filter file can also be specified using
`--test-launcher-filter-file` command line flag. Example test invocation:
```bash
$ out/android/bin/run_content_browsertests \
--site-per-process \
--test-launcher-filter-file=testing/buildbot/filters/site-per-process.content_browsertests.filter
```
## Applicability
Test filter files described here are currently only supported for gtest-based
tests.
For excluding layout tests when running with a particular command line flag, see
`third_party/WebKit/LayoutTests/FlagExpectations/README.txt`.
## Adding new test filter files
Please use the following conventions when naming the new file:
- Please include the name of the test executable (e.g.
`content_browsertests`).
- Please use `.filter` suffix.
- Feel free to add other relevant things into the file name (e.g. the mode the
file applies to - for example `site-per-process`).
When adding a new file, please update `//testing/buildbot/filters/BUILD.gn`.
[gtest_filter]: https://github.com/google/googletest/blob/master/googletest/docs/AdvancedGuide.md#running-a-subset-of-the-tests