Unverified Commit f0ecfff3 authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

[devicelab] mark twc as flaky and fix flutter test perf (#68895)

parent cb67513f
...@@ -37,10 +37,11 @@ enum TestStep { ...@@ -37,10 +37,11 @@ enum TestStep {
testPassed, testPassed,
} }
Future<int> runTest({bool coverage = false}) async { Future<int> runTest({bool coverage = false, bool noPub = false}) async {
final Stopwatch clock = Stopwatch()..start(); final Stopwatch clock = Stopwatch()..start();
final List<String> arguments = flutterCommandArgs('test', <String>[ final List<String> arguments = flutterCommandArgs('test', <String>[
if (coverage) '--coverage', if (coverage) '--coverage',
if (noPub) '--no-pub',
path.join('flutter_test', 'trivial_widget_test.dart'), path.join('flutter_test', 'trivial_widget_test.dart'),
]); ]);
final Process analysis = await startProcess( final Process analysis = await startProcess(
...@@ -107,21 +108,21 @@ void main() { ...@@ -107,21 +108,21 @@ void main() {
final String originalSource = await nodeSourceFile.readAsString(); final String originalSource = await nodeSourceFile.readAsString();
try { try {
await runTest(); // first number is meaningless; could have had to build the tool, run pub get, have a cache, etc await runTest(); // first number is meaningless; could have had to build the tool, run pub get, have a cache, etc
final int withoutChange = await runTest(); // run test again with no change final int withoutChange = await runTest(noPub: true); // run test again with no change
await nodeSourceFile.writeAsString( // only change implementation await nodeSourceFile.writeAsString( // only change implementation
originalSource originalSource
.replaceAll('_owner', '_xyzzy') .replaceAll('_owner', '_xyzzy')
); );
final int implementationChange = await runTest(); // run test again with implementation changed final int implementationChange = await runTest(noPub: true); // run test again with implementation changed
await nodeSourceFile.writeAsString( // change interface as well await nodeSourceFile.writeAsString( // change interface as well
originalSource originalSource
.replaceAll('_owner', '_xyzzy') .replaceAll('_owner', '_xyzzy')
.replaceAll('owner', '_owner') .replaceAll('owner', '_owner')
.replaceAll('_xyzzy', 'owner') .replaceAll('_xyzzy', 'owner')
); );
final int interfaceChange = await runTest(); // run test again with interface changed final int interfaceChange = await runTest(noPub: true); // run test again with interface changed
// run test with coverage enabled. // run test with coverage enabled.
final int withCoverage = await runTest(coverage: true); final int withCoverage = await runTest(coverage: true, noPub: true);
final Map<String, dynamic> data = <String, dynamic>{ final Map<String, dynamic> data = <String, dynamic>{
'without_change_elapsed_time_ms': withoutChange, 'without_change_elapsed_time_ms': withoutChange,
'implementation_change_elapsed_time_ms': implementationChange, 'implementation_change_elapsed_time_ms': implementationChange,
......
...@@ -428,6 +428,7 @@ tasks: ...@@ -428,6 +428,7 @@ tasks:
Verifies that track-widget-creation can be enabled and disabled. Verifies that track-widget-creation can be enabled and disabled.
stage: devicelab stage: devicelab
required_agent_capabilities: ["mac/android"] required_agent_capabilities: ["mac/android"]
flaky: true
android_defines_test: android_defines_test:
description: > description: >
...@@ -647,6 +648,7 @@ tasks: ...@@ -647,6 +648,7 @@ tasks:
Verifies that track-widget-creation can be enabled and disabled. Verifies that track-widget-creation can be enabled and disabled.
stage: devicelab_ios stage: devicelab_ios
required_agent_capabilities: ["mac/ios"] required_agent_capabilities: ["mac/ios"]
flaky: true
macos_chrome_dev_mode: macos_chrome_dev_mode:
description: > description: >
...@@ -913,6 +915,7 @@ tasks: ...@@ -913,6 +915,7 @@ tasks:
Verifies that track-widget-creation can be enabled and disabled. Verifies that track-widget-creation can be enabled and disabled.
stage: devicelab stage: devicelab
required_agent_capabilities: ["linux-vm"] required_agent_capabilities: ["linux-vm"]
flaky: true
# android_splash_screen_integration_test: # android_splash_screen_integration_test:
# description: > # description: >
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment