| ............................................................................... | |
| # Flutter Web Engine Test Suites | |
| The flutter engine unit tests can be run with a number of different | |
| configuration options that affect both compile time and run time. The | |
| permutations of these options are specified in the `felt_config.yaml` file that | |
| is colocated with this README. Here is an overview of the way the test suite | |
| configurations are structured: | |
| ## `compile-configs` | |
| Specifies how the tests should be compiled. Each compile config specifies the | |
| following: | |
| * `name` - The name of the compile configuration. | |
| * `compiler` - What compiler is used to compile the tests. Currently we support | |
| `dart2js` and `dart2wasm` as values. | |
| * `renderer` - Which renderer to use when compiling the tests. Currently we | |
| support `html`, `canvaskit`, and `skwasm`. | |
| ## `test-sets` | |
| A group of files that contain unit tests. Each test set specifies the following: | |
| * `name` - The name of the test set. | |
| * `directory` - The name of the directory under `flutter/lib/web_ui/test` that | |
| contains all the test files. | |
| ## `test-bundles` | |
| Specifies a group of tests and a compile configuration of those tests. The output | |
| of the test bundles appears in `flutter/lib/web_ui/build/test_bundles/<name>` | |
| where `<name>` is replaced by the name of the bundle. Each test bundle may be used | |
| by multiple test suites. Each test bundle specifies the following: | |
| * `name` - The name of the test bundle. | |
| * `test-set` - The name of the test set that contains the tests to be compiled. | |
| * `compile-config` - The name of the compile configuration to use. | |
| ## `run-configs` | |
| Specifies the test environment that should be provided to a unit test. Each run | |
| config specifies the following: | |
| * `name` - Name of the run configuration. | |
| * `browser` - The browser with which to run the tests. Valid values for this are | |
| `chrome`, `firefox`, `safari` or `edge`. | |
| * `canvaskit-variant` - An optionally supplied argument that forces the tests to | |
| use a particular variant of CanvasKit, either `full` or `chromium`. If none | |
| is specified, the engine will select the variant based on its normal selection | |
| logic. | |
| ## `test-suites` | |
| This is a fully specified run of a group of unit tests. They specify the following: | |
| * `name` - Name of the test suite. | |
| * `test-bundle` - Which compiled test bundle to use when running the suite. | |
| * `run-config` - Which run configuration to use when runnin the tests. | |
| * `artifact-deps` - Which gn/ninja build artifacts are needed to run the suite. | |
| Valid values are `canvaskit`, `canvaskit_chromium` or `skwasm`. |