| ............................................................................... |
| # 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`. |