[flutter_tool] Add analytics events for ios-mdns fallback success/failure (#41482)

This commit is contained in:
Zachary Anderson 2019-09-27 12:18:59 -07:00 committed by GitHub
parent 618fac92c9
commit feaaa5d738
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 2 deletions

View file

@ -377,7 +377,7 @@ class IOSDevice extends Device {
return LaunchResult.succeeded(observatoryUri: localUri); return LaunchResult.succeeded(observatoryUri: localUri);
} }
} catch (error) { } catch (error) {
printError('Failed to establish a debug connection with $id: $error'); printError('Failed to establish a debug connection with $id using mdns: $error');
} }
// Fallback to manual protocol discovery. // Fallback to manual protocol discovery.
@ -387,13 +387,15 @@ class IOSDevice extends Device {
printTrace('Waiting for observatory port.'); printTrace('Waiting for observatory port.');
localUri = await observatoryDiscovery.uri; localUri = await observatoryDiscovery.uri;
if (localUri != null) { if (localUri != null) {
UsageEvent('ios-mdns', 'fallback-success').send();
return LaunchResult.succeeded(observatoryUri: localUri); return LaunchResult.succeeded(observatoryUri: localUri);
} }
} catch (error) { } catch (error) {
printError('Failed to establish a debug connection with $id: $error'); printError('Failed to establish a debug connection with $id using logs: $error');
} finally { } finally {
await observatoryDiscovery?.cancel(); await observatoryDiscovery?.cancel();
} }
UsageEvent('ios-mdns', 'fallback-failure').send();
return LaunchResult.failed(); return LaunchResult.failed();
} finally { } finally {
installStatus.stop(); installStatus.stop();

View file

@ -219,6 +219,7 @@ void main() {
platformArgs: <String, dynamic>{}, platformArgs: <String, dynamic>{},
); );
verify(mockUsage.sendEvent('ios-mdns', 'failure')).called(1); verify(mockUsage.sendEvent('ios-mdns', 'failure')).called(1);
verify(mockUsage.sendEvent('ios-mdns', 'fallback-success')).called(1);
expect(launchResult.started, isTrue); expect(launchResult.started, isTrue);
expect(launchResult.hasObservatory, isTrue); expect(launchResult.hasObservatory, isTrue);
expect(await device.stopApp(mockApp), isFalse); expect(await device.stopApp(mockApp), isFalse);
@ -250,6 +251,8 @@ void main() {
debuggingOptions: DebuggingOptions.enabled(const BuildInfo(BuildMode.debug, null)), debuggingOptions: DebuggingOptions.enabled(const BuildInfo(BuildMode.debug, null)),
platformArgs: <String, dynamic>{}, platformArgs: <String, dynamic>{},
); );
verify(mockUsage.sendEvent('ios-mdns', 'failure')).called(1);
verify(mockUsage.sendEvent('ios-mdns', 'fallback-failure')).called(1);
expect(launchResult.started, isFalse); expect(launchResult.started, isFalse);
expect(launchResult.hasObservatory, isFalse); expect(launchResult.hasObservatory, isFalse);
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
@ -259,6 +262,7 @@ void main() {
MDnsObservatoryDiscovery: () => mockMDnsObservatoryDiscovery, MDnsObservatoryDiscovery: () => mockMDnsObservatoryDiscovery,
Platform: () => macPlatform, Platform: () => macPlatform,
ProcessManager: () => mockProcessManager, ProcessManager: () => mockProcessManager,
Usage: () => mockUsage,
}); });
testUsingContext(' succeeds in release mode', () async { testUsingContext(' succeeds in release mode', () async {