From 4ee618bb72fd8bbb6f67a9a94682ef8f15c80b74 Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Thu, 16 Apr 2020 15:49:08 -0700 Subject: [PATCH] [flutter_tools] don't elapse real time during fallback test (#54717) --- .../lib/src/ios/fallback_discovery.dart | 14 +++++++++----- .../general.shard/ios/fallback_discovery_test.dart | 1 + 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/flutter_tools/lib/src/ios/fallback_discovery.dart b/packages/flutter_tools/lib/src/ios/fallback_discovery.dart index 0d5aa4bb58a..d17795fba14 100644 --- a/packages/flutter_tools/lib/src/ios/fallback_discovery.dart +++ b/packages/flutter_tools/lib/src/ios/fallback_discovery.dart @@ -13,6 +13,8 @@ import '../mdns_discovery.dart'; import '../protocol_discovery.dart'; import '../reporting/reporting.dart'; +typedef VmServiceConnector = Future Function(String, {Log log}); + /// A protocol for discovery of a vmservice on an attached iOS device with /// multiple fallbacks. /// @@ -42,14 +44,16 @@ class FallbackDiscovery { @required Logger logger, @required ProtocolDiscovery protocolDiscovery, @required Usage flutterUsage, - Future Function(String wsUri, {Log log}) vmServiceConnectUri = + VmServiceConnector vmServiceConnectUri = vm_service_io.vmServiceConnectUri, + Duration pollingDelay = const Duration(seconds: 2), }) : _logger = logger, _mDnsObservatoryDiscovery = mDnsObservatoryDiscovery, _portForwarder = portForwarder, _protocolDiscovery = protocolDiscovery, _flutterUsage = flutterUsage, - _vmServiceConnectUri = vmServiceConnectUri; + _vmServiceConnectUri = vmServiceConnectUri, + _pollingDelay = pollingDelay; static const String _kEventName = 'ios-handshake'; @@ -58,7 +62,8 @@ class FallbackDiscovery { final Logger _logger; final ProtocolDiscovery _protocolDiscovery; final Usage _flutterUsage; - final Future Function(String wsUri, {Log log}) _vmServiceConnectUri; + final VmServiceConnector _vmServiceConnectUri; + final Duration _pollingDelay; /// Attempt to discover the observatory port. Future discover({ @@ -152,7 +157,6 @@ class FallbackDiscovery { // Attempt to connect to the VM service 5 times. int attempts = 0; - const int kDelaySeconds = 2; Exception firstException; while (attempts < 5) { try { @@ -184,7 +188,7 @@ class FallbackDiscovery { // tool waits for a connection to be reasonable. If the vmservice cannot // be connected to in this way, the mDNS discovery must be reached // sooner rather than later. - await Future.delayed(const Duration(seconds: kDelaySeconds)); + await Future.delayed(_pollingDelay); attempts += 1; } _logger.printTrace('Failed to connect directly, falling back to mDNS'); diff --git a/packages/flutter_tools/test/general.shard/ios/fallback_discovery_test.dart b/packages/flutter_tools/test/general.shard/ios/fallback_discovery_test.dart index f255299e564..a444cbb51f5 100644 --- a/packages/flutter_tools/test/general.shard/ios/fallback_discovery_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/fallback_discovery_test.dart @@ -42,6 +42,7 @@ void main() { vmServiceConnectUri: (String uri, {Log log}) async { return mockVmService; }, + pollingDelay: Duration.zero, ); when(mockPortForwarder.forward(23, hostPort: anyNamed('hostPort'))) .thenAnswer((Invocation invocation) async => 1);