Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
cde2e101
Commit
cde2e101
authored
Mar 03, 2016
by
Yegor
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #2354 from yjbanov/wait-for-pause-on-start
[driver] wait for the isolate to enter pause on start
parents
2fe456bf
44d7a577
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
16 additions
and
2 deletions
+16
-2
driver.dart
packages/flutter_driver/lib/src/driver.dart
+15
-1
flutter_driver_test.dart
packages/flutter_driver/test/flutter_driver_test.dart
+1
-1
No files found.
packages/flutter_driver/lib/src/driver.dart
View file @
cde2e101
...
...
@@ -43,7 +43,21 @@ class FlutterDriver {
VMServiceClient
client
=
await
vmServiceConnectFunction
(
dartVmServiceUrl
);
VM
vm
=
await
client
.
getVM
();
_log
.
trace
(
'Looking for the isolate'
);
VMIsolate
isolate
=
await
vm
.
isolates
.
first
.
load
();
VMIsolate
isolate
=
await
vm
.
isolates
.
first
.
loadRunnable
();
// TODO(yjbanov): for a very brief moment the isolate could report that it
// is resumed, right before it goes into "paused on start" state. There's no
// robust way to deal with it other than waiting and querying for the
// isolate data again. 300 millis should be sufficient as the isolate is in
// the runnable state (i.e. it loaded and parsed all the Dart code) and
// going from here to the `main()` method should be trivial.
//
// See: https://github.com/dart-lang/sdk/issues/25902
if
(
isolate
.
pauseEvent
is
VMResumeEvent
)
{
await
new
Future
.
delayed
(
new
Duration
(
milliseconds:
300
));
isolate
=
await
vm
.
isolates
.
first
.
loadRunnable
();
}
FlutterDriver
driver
=
new
FlutterDriver
.
connectedTo
(
client
,
isolate
);
// Attempts to resume the isolate, but does not crash if it fails because
...
...
packages/flutter_driver/test/flutter_driver_test.dart
View file @
cde2e101
...
...
@@ -33,7 +33,7 @@ main() {
mockIsolate
=
new
MockIsolate
();
when
(
mockClient
.
getVM
()).
thenReturn
(
mockVM
);
when
(
mockVM
.
isolates
).
thenReturn
([
mockIsolate
]);
when
(
mockIsolate
.
load
()).
thenReturn
(
mockIsolate
);
when
(
mockIsolate
.
load
Runnable
()).
thenReturn
(
mockIsolate
);
when
(
mockIsolate
.
invokeExtension
(
any
,
any
))
.
thenReturn
(
new
Future
.
value
({
'status'
:
'ok'
}));
vmServiceConnectFunction
=
(
_
)
=>
new
Future
.
value
(
mockClient
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment