From db9a035e7ce755d79db654d97769a5403701fde4 Mon Sep 17 00:00:00 2001 From: Jason Simmons Date: Fri, 11 Oct 2019 11:04:39 -0700 Subject: [PATCH] Wait for isolate start before proceeding with expression evaluation tests (#42464) Fixes https://github.com/flutter/flutter/issues/42359 --- .../test/integration.shard/test_driver.dart | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/flutter_tools/test/integration.shard/test_driver.dart b/packages/flutter_tools/test/integration.shard/test_driver.dart index e2845ebad04..eabae358bc0 100644 --- a/packages/flutter_tools/test/integration.shard/test_driver.dart +++ b/packages/flutter_tools/test/integration.shard/test_driver.dart @@ -127,8 +127,12 @@ abstract class FlutterTestDriver { _vmService = await vmServiceConnectUri('$_vmServiceWsUri'); _vmService.onSend.listen((String s) => _debugPrint(s, topic: '=vm=>')); _vmService.onReceive.listen((String s) => _debugPrint(s, topic: '<=vm=')); + + final Completer isolateStarted = Completer(); _vmService.onIsolateEvent.listen((Event event) { - if (event.kind == EventKind.kIsolateExit && event.isolate.id == _flutterIsolateId) { + if (event.kind == EventKind.kIsolateStart) { + isolateStarted.complete(); + } else if (event.kind == EventKind.kIsolateExit && event.isolate.id == _flutterIsolateId) { // Hot restarts cause all the isolates to exit, so we need to refresh // our idea of what the Flutter isolate ID is. _flutterIsolateId = null; @@ -140,6 +144,10 @@ abstract class FlutterTestDriver { _vmService.streamListen('Debug'), ]); + if ((await _vmService.getVM()).isolates.isEmpty) { + await isolateStarted.future; + } + await waitForPause(); if (pauseOnExceptions) { await _vmService.setExceptionPauseMode(