| Index: doc/package_config.md
|
| diff --git a/doc/package_config.md b/doc/package_config.md
|
| index bead8c7991b76db75c89e316d017907756419a3f..adf4057d562b3bcb3885b5fa656c43d6b0fbd7ba 100644
|
| --- a/doc/package_config.md
|
| +++ b/doc/package_config.md
|
| @@ -38,7 +38,11 @@ tags:
|
| * [`pub_serve`](#pub_serve)
|
| * [`reporter`](#reporter)
|
| * [Configuring Tags](#configuring-tags)
|
| + * [`tags`](#tags)
|
| * [`add_tags`](#add_tags)
|
| +* [Configuring Platforms](#configuring-platforms)
|
| + * [`on_os`](#on_os)
|
| + * [`on_platform`](#on_platform)
|
|
|
| ## Test Configuration
|
|
|
| @@ -47,8 +51,8 @@ configuration controls how individual tests run, while
|
| [runner configuration](#runner-configuration) controls the test runner as a
|
| whole. Both types of fields may be used at the top level of a configuration
|
| file. However, because different tests can have different test configuration,
|
| -only test configuration fields may be used to
|
| -[configure tags](#configuring-tags).
|
| +only test configuration fields may be used to [configure tags](#tags) or
|
| +[platforms](#on_platform).
|
|
|
| ### `timeout`
|
|
|
| @@ -112,11 +116,12 @@ tags:
|
| ### `test_on`
|
|
|
| This field declares which platforms a test supports. It takes a
|
| -[platform selector][] and only allows tests to run on platforms that match the
|
| -selector. It's often used with [specific tags](#configuring-tags) to ensure that
|
| -certain features will only be tested on supported platforms.
|
| +[platform selector][platform selectors] and only allows tests to run on
|
| +platforms that match the selector. It's often used with
|
| +[specific tags](#configuring-tags) to ensure that certain features will only be
|
| +tested on supported platforms.
|
|
|
| -[platform selector]: https://github.com/dart-lang/test/blob/master/README.md#platform-selectors
|
| +[platform selectors]: https://github.com/dart-lang/test/blob/master/README.md#platform-selectors
|
|
|
| ```yaml
|
| tags:
|
| @@ -223,6 +228,8 @@ reporter: expanded
|
|
|
| ## Configuring Tags
|
|
|
| +### `tags`
|
| +
|
| The `tag` field can be used to apply [test configuration](#test-configuration)
|
| to all tests [with a given tag][tagging tests] or set of tags. It takes a map
|
| from tag selectors to configuration maps. These configuration maps are just like
|
| @@ -274,6 +281,8 @@ configurations, the test runner *does not guarantee* what order they'll be
|
| resolved in. In practice, conflicting configuration is pretty unlikely and it's
|
| easy to just explicitly specify what you want on the test itself.
|
|
|
| +This field counts as [test configuration](#test-configuration).
|
| +
|
| ### `add_tags`
|
|
|
| This field adds additional tags. It's technically
|
| @@ -295,3 +304,63 @@ tags:
|
| safari: {add_tags: [browser]}
|
| ie: {add_tags: [browser]}
|
| ```
|
| +
|
| +## Configuring Platforms
|
| +
|
| +There are two different kinds of platform configuration.
|
| +[Operating system configuration](#on_os) cares about the operating system on
|
| +which test runner is running. It sets global configuration for the runner on
|
| +particular OSes. [Test platform configuration](#on_platform), on the other hand,
|
| +cares about the platform the *test* is running on (like the
|
| +[`@OnPlatform` annotation][@OnPlatform]). It sets configuration for particular
|
| +tests that are running on matching platforms.
|
| +
|
| +[@OnPlatform]: https://github.com/dart-lang/test/blob/master/README.md#platform-specific-configuration
|
| +
|
| +### `on_os`
|
| +
|
| +This field applies configuration when specific operating systems are being used.
|
| +It takes a map from operating system identifiers (the same ones that are used in
|
| +[platform selectors][]) to configuration maps that are applied on those
|
| +operating systems. These configuration maps are just like the top level of the
|
| +configuration file, and allow any fields that may be used in the context where
|
| +`on_os` was used.
|
| +
|
| +```yaml
|
| +on_os:
|
| + windows:
|
| + # Both of these are the defaults anyway, but let's be explicit about it.
|
| + color: false
|
| + runner: expanded
|
| +
|
| + # My Windows machine is real slow.
|
| + timeout: 2x
|
| +
|
| + # My Linux machine has SO MUCH RAM.
|
| + linux:
|
| + concurrency: 500
|
| +```
|
| +
|
| +This field counts as [test configuration](#test-configuration). If it's used in
|
| +a context that only allows test configuration, it may only contain test
|
| +configuration.
|
| +
|
| +### `on_platform`
|
| +
|
| +This field applies configuration to tests that are run on specific platforms. It
|
| +takes a map from [platform selectors][] to configuration maps that are applied
|
| +to tests run on those platforms. These configuration maps are just like the top
|
| +level of the configuration file, except that they may not contain
|
| +[runner configuration](#runner-configuration).
|
| +
|
| +```yaml
|
| +# Our code is kind of slow on Blink and WebKit.
|
| +on_platform:
|
| + chrome || safari: {timeout: 2x}
|
| +```
|
| +
|
| +**Note**: operating system names that appear in `on_platform` refer to tests
|
| +that are run on the Dart VM under that operating system. To configure all tests
|
| +when running on a particular operating system, use [`on_os`](#on_os) instead.
|
| +
|
| +This field counts as [test configuration](#test-configuration).
|
|
|