-
Notifications
You must be signed in to change notification settings - Fork 218
Start adding Sky support to test runner #320
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
Conversation
- Improve BrowserServer.loadSuite return type - Move comment to proper location
VMListener will be used when running tests in subprocesses instead of isolates.
This code will be shared with SubprocessTest to support running tests in another process.
This patch moves the Isolate-related concerns out of the main `Loader` class and into an `IsolateLoader` class. This change makes the structure between Isolate- and Browser-based loading more parallel and paves the way to introduce a `SubprocessLoader`.
This is very cool stuff, and we definitely want to make it easy to run the test runner with Sky. But wouldn't it be a lot simpler and faster to just run |
The |
In that case, this would be a great place for a launcher plugin (#99). How urgent is it for you to get the test runner running Sky? If possible I'd like to avoid a major refactor that would later be undone, but it'll be a while before plugin support lands and I don't want to block you. How are you thinking that Sky support would be injected into the test runner? |
I don't think the Instead, the model in the vm directory fit well with what we want for Sky. The only trouble is that it re-uses the existing process using isolates. If instead it spun up subprocesses instead of isolates, it would be exactly what we want.
Currently we write tests using a different test runner written in Python. That works ok for us, but it's not something we'll want end-developers using Sky to have to deal with. We'd like to switch over to using the same testing system our end-developers will be using.
I don't think the plugin system as described in #99 will work well for Sky. Sky isn't a browser, so having the ability to plug in different browsers isn't that useful.
Assuming we have multiprocess support in the vm code path, the only missing piece of information would be the path to the |
Good point; maybe #49 is a better fit. The plugin API design is still up in the air, and we'll probably use this as a driving use-case, so it'll fit in one way or another.
Since it sounds like you've got a workable (if not ideal) setup for now, I think I'd like to keep this refactor out of the core test runner and work towards fitting it into the plugin API. Especially since this would be a user-visible change, rolling it back once the plugin API lands would be a pretty big cost. |
This is specifically to allow Sky to get sky_shell support into the test runner immediately. It's temporary; it'll last until we land proper plugin support. See #320 [email protected] Review URL: https://codereview.chromium.org//1309493002 .
I'm working on adding support for Sky to
test
by making it possible to run tests insky_shell
. Thesky_shell
is similar to the standalonedart
command line environment but with thedart:sky
library available.The approach I'm using is to run the tests in a
sky_shell
subprocess of the test runner process. The code will follow the approach used byTestPlatform.vm
but using subprocesses and WebSockets instead of isolates and SendPorts.I looked at re-using the browser codepath, but that code makes too many assumptions about how the subprocess works (e.g., that it supports iframes). It looked like
TestPlatform.vm
was a better starting point.This pull request just factors base classes out of some of the
runner/vm
code to make it easier to share code with the upcomingsubprocess_listener
andsubprocess_test
. After these series of pull requests, it will also be possible to run tests indart
subprocesses instead of isolates.