-
Notifications
You must be signed in to change notification settings - Fork 28k
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
Make sure all isolates start during flutter driver tests. #65703
Conversation
@dnfield got a minute to take a look at this one? |
This seems fine to me. I'm unable right now to run tests internally due to some networking issues. @renyou would you be able to help with this? |
@renyou See cl/332401506, only a couple of (I believe) unrelated flakes |
Sorry somehow I didn't see the messages on this PR earlier. So far the tests looks good. Just to be safe, I started a full test on this PR too. Hopefully we will see the results in a couple of hours. I will report back here if we found any thing. |
Didn't realize you already did the full test :) Good to go! |
Description
Fixes #24703.
Flutter driver has problems when flutter apps use more than a single isolate. The other isolates don't start, so apps malfunction. This PR fixes the problem by telling the dart VM to let new isolates start automatically. This only happens if the first isolate is found paused; otherwise we don't mess with the flag.
There have been two previous attempts at fixing this bug.
#61841 was reverted because it broke a fragile test app.
#64432 because of timing issues when a hot reload/hot restart occurred while flutter driver was connected with the app.
Thanks to tvolkert@ for pointing out an alternate approach that uses a dart VM feature to keep flutter driver code simpler. Hopefully this approach is more stable, but given history this one might get rolled back too.
Related Issues
24703
Tests
I added the following tests:
Checklist
Before you create this PR, confirm that it meets all requirements listed below by checking the relevant checkboxes (
[x]
). This will ensure a smooth and quick review process.///
).flutter analyze --flutter-repo
) does not report any problems on my PR.Breaking Change
Did any tests fail when you ran them? Please read [Handling breaking changes].