From 75dc033613bb267c8ced8f140f0d65695123e27a Mon Sep 17 00:00:00 2001 From: Yegor Date: Thu, 13 Apr 2017 10:04:08 -0700 Subject: [PATCH] cancel timeout when waiting for driver extension (#9354) --- packages/flutter_driver/lib/src/driver.dart | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/packages/flutter_driver/lib/src/driver.dart b/packages/flutter_driver/lib/src/driver.dart index 1f5e675fdb..0f15222fbe 100644 --- a/packages/flutter_driver/lib/src/driver.dart +++ b/packages/flutter_driver/lib/src/driver.dart @@ -217,16 +217,15 @@ class FlutterDriver { // option, then the VM service extension is not registered yet. Wait for // it to be registered. final Future whenResumed = resumeLeniently(); - final Future whenServiceExtensionReady = Future.any(>[ - waitForServiceExtension(), + final Future whenServiceExtensionReady = waitForServiceExtension(); + await whenResumed; + + try { + _log.trace('Waiting for service extension'); // We will never receive the extension event if the user does not // register it. If that happens time out. - new Future.delayed(_kLongTimeout * 2, () => 'timeout') - ]); - await whenResumed; - _log.trace('Waiting for service extension'); - final dynamic signal = await whenServiceExtensionReady; - if (signal == 'timeout') { + await whenServiceExtensionReady.timeout(_kLongTimeout * 2); + } on TimeoutException catch (_) { throw new DriverError( 'Timed out waiting for Flutter Driver extension to become available. ' 'Ensure your test app (often: lib/main.dart) imports '