Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add the ability to define and override test platforms #706

Merged
merged 15 commits into from Oct 19, 2017

Conversation

nex3
Copy link
Member

@nex3 nex3 commented Oct 19, 2017

See #99
Closes #391

nex3 and others added 15 commits October 3, 2017 13:48
This will make it easier to define custom test platforms (both via #391
and #99) in the future. Because those platforms will be loaded based on
the configuration, requiring knowledge of them to parse the user's
platform arguments would produce an unresolvable circular dependency.
We want users to be able to dynamically define new platforms, which
means we need infrastructure in place for piping those platforms to
places that previously assumed TestPlatform.all was a full list of
available platforms. PlatformSelector is the trickiest example, since
it's parsed in a number of different places and needs to provide useful
feedback to users when they use an undefined platform.

This splits parsing and platform validation into two separate steps.
Validation will be done immediately after parsing when the selectors
come from top-level annotations or parameters passed to test() or
group(), but selectors defined in configuration files are now parsed
only after all configuration is parsed. This will allow new platforms to
be defined *and* referenced in configuration files.

See #99
See #391
This ensures that the remote listener has access to any platforms that
are dynamically loaded in the test runner, so they can be used in
platform selectors.

See #99
See #391
Now that the Loader is the canonical place for determining which
TestPlatforms are valid, we no longer need a separate mechanism for
registering platforms. Adding a plugin to the loader is sufficient.

See #391
This makes it easier to add platforms that extend existing platforms
without running into serialization headaches. It also cleans up the
Declarer API and means we're sending less redundant data between
isolates.
This doesn't really do anything yet, since no platforms currently
support customization.

See #391
Add a define_platforms configuration field
Add an override_platforms config field
@nex3 nex3 merged commit 47debed into master Oct 19, 2017
@nex3 nex3 deleted the feature.flexible-test-platforms branch October 19, 2017 22:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants