Reland eliminate timeouts from integration tests (#85141)
diff --git a/dev/benchmarks/complex_layout/test_driver/measure_scroll_smoothness_test.dart b/dev/benchmarks/complex_layout/test_driver/measure_scroll_smoothness_test.dart
index 9dd60ce..c40876a 100644
--- a/dev/benchmarks/complex_layout/test_driver/measure_scroll_smoothness_test.dart
+++ b/dev/benchmarks/complex_layout/test_driver/measure_scroll_smoothness_test.dart
@@ -7,7 +7,6 @@
import 'package:integration_test/integration_test_driver.dart' as driver;
Future<void> main() => driver.integrationDriver(
- timeout: const Duration(minutes: 5),
responseDataCallback: (Map<String, dynamic>? data) async {
await driver.writeResponseData(
data,
diff --git a/dev/benchmarks/complex_layout/test_driver/scroll_perf_test.dart b/dev/benchmarks/complex_layout/test_driver/scroll_perf_test.dart
index f7d5d1e..afa169f 100644
--- a/dev/benchmarks/complex_layout/test_driver/scroll_perf_test.dart
+++ b/dev/benchmarks/complex_layout/test_driver/scroll_perf_test.dart
@@ -55,12 +55,12 @@
test('complex_layout_scroll_perf', () async {
await testScrollPerf('complex-scroll', 'complex_layout_scroll_perf');
- });
+ }, timeout: Timeout.none);
test('tiles_scroll_perf', () async {
await driver.tap(find.byTooltip('Open navigation menu'));
await driver.tap(find.byValueKey('scroll-switcher'));
await testScrollPerf('tiles-scroll', 'tiles_scroll_perf');
- });
+ }, timeout: Timeout.none);
});
}
diff --git a/dev/benchmarks/complex_layout/test_driver/semantics_perf_test.dart b/dev/benchmarks/complex_layout/test_driver/semantics_perf_test.dart
index cc7828c..e37603b 100644
--- a/dev/benchmarks/complex_layout/test_driver/semantics_perf_test.dart
+++ b/dev/benchmarks/complex_layout/test_driver/semantics_perf_test.dart
@@ -40,6 +40,6 @@
final String jsonEncoded = json.encode(<String, dynamic>{'initialSemanticsTreeCreation': semanticsTreeCreation.inMilliseconds});
File(p.join(testOutputsDirectory, 'complex_layout_semantics_perf.json')).writeAsStringSync(jsonEncoded);
- });
+ }, timeout: Timeout.none);
});
}
diff --git a/dev/benchmarks/macrobenchmarks/test/cull_opacity_perf_e2e.dart b/dev/benchmarks/macrobenchmarks/test/cull_opacity_perf_e2e.dart
index 6609d16..0be0116 100644
--- a/dev/benchmarks/macrobenchmarks/test/cull_opacity_perf_e2e.dart
+++ b/dev/benchmarks/macrobenchmarks/test/cull_opacity_perf_e2e.dart
@@ -15,6 +15,5 @@
kCullOpacityRouteName,
pageDelay: const Duration(seconds: 1),
duration: const Duration(seconds: 10),
- timeout: const Duration(seconds: 45),
);
}
diff --git a/dev/benchmarks/macrobenchmarks/test/multi_widget_construction_perf_e2e.dart b/dev/benchmarks/macrobenchmarks/test/multi_widget_construction_perf_e2e.dart
index c5991e2..442c9ec 100644
--- a/dev/benchmarks/macrobenchmarks/test/multi_widget_construction_perf_e2e.dart
+++ b/dev/benchmarks/macrobenchmarks/test/multi_widget_construction_perf_e2e.dart
@@ -12,6 +12,5 @@
kMultiWidgetConstructionRouteName,
pageDelay: const Duration(seconds: 1),
duration: const Duration(seconds: 10),
- timeout: const Duration(seconds: 45),
);
}
diff --git a/dev/benchmarks/macrobenchmarks/test/util.dart b/dev/benchmarks/macrobenchmarks/test/util.dart
index 557a029..e99bfa4 100644
--- a/dev/benchmarks/macrobenchmarks/test/util.dart
+++ b/dev/benchmarks/macrobenchmarks/test/util.dart
@@ -15,7 +15,6 @@
String routeName, {
Duration pageDelay,
Duration duration = const Duration(seconds: 3),
- Duration timeout = const Duration(seconds: 30),
ControlCallback body,
ControlCallback setup,
}) {
@@ -63,5 +62,5 @@
}
await durationFuture;
});
- }, semanticsEnabled: false, timeout: Timeout(timeout));
+ }, semanticsEnabled: false, timeout: Timeout.none);
}
diff --git a/dev/benchmarks/macrobenchmarks/test_driver/animated_image_test.dart b/dev/benchmarks/macrobenchmarks/test_driver/animated_image_test.dart
index 3e1d85b..2b6f71f 100644
--- a/dev/benchmarks/macrobenchmarks/test_driver/animated_image_test.dart
+++ b/dev/benchmarks/macrobenchmarks/test_driver/animated_image_test.dart
@@ -20,5 +20,5 @@
await summary.writeTimelineToFile(fileName, pretty: true);
await driver.close();
- });
+ }, timeout: Timeout.none);
}
diff --git a/dev/benchmarks/macrobenchmarks/test_driver/cull_opacity_perf_test.dart b/dev/benchmarks/macrobenchmarks/test_driver/cull_opacity_perf_test.dart
index eb7a8c6..40c8e81 100644
--- a/dev/benchmarks/macrobenchmarks/test_driver/cull_opacity_perf_test.dart
+++ b/dev/benchmarks/macrobenchmarks/test_driver/cull_opacity_perf_test.dart
@@ -12,6 +12,5 @@
kCullOpacityRouteName,
pageDelay: const Duration(seconds: 1),
duration: const Duration(seconds: 10),
- timeout: const Duration(minutes: 2),
);
}
diff --git a/dev/benchmarks/macrobenchmarks/test_driver/e2e_test.dart b/dev/benchmarks/macrobenchmarks/test_driver/e2e_test.dart
index d931eff..b6b9b8b 100644
--- a/dev/benchmarks/macrobenchmarks/test_driver/e2e_test.dart
+++ b/dev/benchmarks/macrobenchmarks/test_driver/e2e_test.dart
@@ -5,7 +5,6 @@
import 'package:integration_test/integration_test_driver.dart' as driver;
Future<void> main() => driver.integrationDriver(
- timeout: const Duration(minutes: 5),
responseDataCallback: (Map<String, dynamic> data) async {
await driver.writeResponseData(
data['performance'] as Map<String, dynamic>,
diff --git a/dev/benchmarks/macrobenchmarks/test_driver/frame_policy_test.dart b/dev/benchmarks/macrobenchmarks/test_driver/frame_policy_test.dart
index 53a2a0d..77aa56a 100644
--- a/dev/benchmarks/macrobenchmarks/test_driver/frame_policy_test.dart
+++ b/dev/benchmarks/macrobenchmarks/test_driver/frame_policy_test.dart
@@ -7,7 +7,6 @@
import 'package:integration_test/integration_test_driver.dart' as driver;
Future<void> main() => driver.integrationDriver(
- timeout: const Duration(minutes: 1),
responseDataCallback: (Map<String, dynamic> data) async {
final Map<String, dynamic> benchmarkLiveResult =
data['benchmarkLive'] as Map<String,dynamic>;
diff --git a/dev/benchmarks/macrobenchmarks/test_driver/large_image_changer_test.dart b/dev/benchmarks/macrobenchmarks/test_driver/large_image_changer_test.dart
index c19c384..8ac78c0 100644
--- a/dev/benchmarks/macrobenchmarks/test_driver/large_image_changer_test.dart
+++ b/dev/benchmarks/macrobenchmarks/test_driver/large_image_changer_test.dart
@@ -40,5 +40,5 @@
}
await driver.close();
- });
+ }, timeout: Timeout.none);
}
diff --git a/dev/benchmarks/macrobenchmarks/test_driver/multi_widget_construction_perf_test.dart b/dev/benchmarks/macrobenchmarks/test_driver/multi_widget_construction_perf_test.dart
index 7b4b00d..b233b17 100644
--- a/dev/benchmarks/macrobenchmarks/test_driver/multi_widget_construction_perf_test.dart
+++ b/dev/benchmarks/macrobenchmarks/test_driver/multi_widget_construction_perf_test.dart
@@ -12,6 +12,5 @@
kMultiWidgetConstructionRouteName,
pageDelay: const Duration(seconds: 1),
duration: const Duration(seconds: 10),
- timeout: const Duration(seconds: 45),
);
}
diff --git a/dev/benchmarks/macrobenchmarks/test_driver/picture_cache_perf_test.dart b/dev/benchmarks/macrobenchmarks/test_driver/picture_cache_perf_test.dart
index 0affa49..31445b2 100644
--- a/dev/benchmarks/macrobenchmarks/test_driver/picture_cache_perf_test.dart
+++ b/dev/benchmarks/macrobenchmarks/test_driver/picture_cache_perf_test.dart
@@ -11,7 +11,6 @@
macroPerfTest(
'picture_cache_perf',
kPictureCacheRouteName,
- timeout: const Duration(seconds: 60),
pageDelay: const Duration(seconds: 1),
driverOps: (FlutterDriver driver) async {
final SerializableFinder tabBarView = find.byValueKey('tabbar_view');
diff --git a/dev/benchmarks/macrobenchmarks/test_driver/stack_size_perf_test.dart b/dev/benchmarks/macrobenchmarks/test_driver/stack_size_perf_test.dart
index 6344b5c..e47932c 100644
--- a/dev/benchmarks/macrobenchmarks/test_driver/stack_size_perf_test.dart
+++ b/dev/benchmarks/macrobenchmarks/test_driver/stack_size_perf_test.dart
@@ -30,7 +30,7 @@
await file.writeAsString(_encodeJson(<String, dynamic>{
'stack_size': stackSizeInBytes,
}));
- }, timeout: const Timeout(kTimeout));
+ }, timeout: Timeout.none);
}
String _encodeJson(Map<String, dynamic> jsonObject) {
diff --git a/dev/benchmarks/macrobenchmarks/test_driver/util.dart b/dev/benchmarks/macrobenchmarks/test_driver/util.dart
index 55a18df..e4bd50f 100644
--- a/dev/benchmarks/macrobenchmarks/test_driver/util.dart
+++ b/dev/benchmarks/macrobenchmarks/test_driver/util.dart
@@ -6,8 +6,6 @@
import 'package:macrobenchmarks/common.dart';
import 'package:test/test.dart' hide TypeMatcher, isInstanceOf;
-const Duration kTimeout = Duration(seconds: 30);
-
typedef DriverTestCallBack = Future<void> Function(FlutterDriver driver);
Future<void> runDriverTestForRoute(String routeName, DriverTestCallBack body) async {
@@ -34,14 +32,13 @@
}
void macroPerfTest(
- String testName,
- String routeName,
- { Duration pageDelay,
- Duration duration = const Duration(seconds: 3),
- Duration timeout = kTimeout,
- Future<void> Function(FlutterDriver driver) driverOps,
- Future<void> Function(FlutterDriver driver) setupOps,
- }) {
+ String testName,
+ String routeName, {
+ Duration pageDelay,
+ Duration duration = const Duration(seconds: 3),
+ Future<void> Function(FlutterDriver driver) driverOps,
+ Future<void> Function(FlutterDriver driver) setupOps,
+}) {
test(testName, () async {
Timeline timeline;
await runDriverTestForRoute(routeName, (FlutterDriver driver) async {
@@ -67,5 +64,5 @@
final TimelineSummary summary = TimelineSummary.summarize(timeline);
await summary.writeTimelineToFile(testName, pretty: true);
- }, timeout: Timeout(timeout));
+ }, timeout: Timeout.none);
}
diff --git a/dev/benchmarks/platform_views_layout/test_driver/scroll_perf_test.dart b/dev/benchmarks/platform_views_layout/test_driver/scroll_perf_test.dart
index e42ff78..1fa81c6 100644
--- a/dev/benchmarks/platform_views_layout/test_driver/scroll_perf_test.dart
+++ b/dev/benchmarks/platform_views_layout/test_driver/scroll_perf_test.dart
@@ -55,6 +55,6 @@
await driver.runUnsynchronized(() async {
await testScrollPerf('platform-views-scroll', 'platform_views_scroll_perf');
});
- });
+ }, timeout: Timeout.none);
});
}
diff --git a/dev/benchmarks/platform_views_layout_hybrid_composition/test_driver/scroll_perf_test.dart b/dev/benchmarks/platform_views_layout_hybrid_composition/test_driver/scroll_perf_test.dart
index 7626fc6..fa4dcf9 100644
--- a/dev/benchmarks/platform_views_layout_hybrid_composition/test_driver/scroll_perf_test.dart
+++ b/dev/benchmarks/platform_views_layout_hybrid_composition/test_driver/scroll_perf_test.dart
@@ -55,6 +55,6 @@
await driver.runUnsynchronized(() async {
await testScrollPerf('platform-views-scroll', 'platform_views_scroll_perf_hybrid_composition');
});
- });
+ }, timeout: Timeout.none);
});
}
diff --git a/dev/benchmarks/test_apps/stocks/test_driver/scroll_perf_test.dart b/dev/benchmarks/test_apps/stocks/test_driver/scroll_perf_test.dart
index 03a6ae9..21c8d3e 100644
--- a/dev/benchmarks/test_apps/stocks/test_driver/scroll_perf_test.dart
+++ b/dev/benchmarks/test_apps/stocks/test_driver/scroll_perf_test.dart
@@ -40,6 +40,6 @@
final TimelineSummary summary = TimelineSummary.summarize(timeline);
await summary.writeTimelineToFile('stocks_scroll_perf', pretty: true);
- });
+ }, timeout: Timeout.none);
});
}
diff --git a/dev/benchmarks/test_apps/stocks/test_driver/stock_view_test.dart b/dev/benchmarks/test_apps/stocks/test_driver/stock_view_test.dart
index 308ec4e..07a54df 100644
--- a/dev/benchmarks/test_apps/stocks/test_driver/stock_view_test.dart
+++ b/dev/benchmarks/test_apps/stocks/test_driver/stock_view_test.dart
@@ -22,7 +22,7 @@
test('Stock list is shown', () async {
final SerializableFinder stockList = find.byValueKey('stock-list');
expect(stockList, isNotNull);
- });
+ }, timeout: Timeout.none);
test('open AAPL stock', () async {
final SerializableFinder stockList = find.byValueKey('stock-list');
@@ -36,10 +36,9 @@
final SerializableFinder stockOption =
find.byValueKey('AAPL_symbol_name');
- final String symbol = await driver.getText(stockOption,
- timeout: const Duration(milliseconds: 500));
+ final String symbol = await driver.getText(stockOption);
expect(symbol, 'AAPL');
- }, skip: 'Needs to be fixed on Fuchsia.');
+ }, skip: 'Needs to be fixed on Fuchsia.', timeout: Timeout.none);
});
}
diff --git a/dev/bots/analyze.dart b/dev/bots/analyze.dart
index ed8f93f..35865ea 100644
--- a/dev/bots/analyze.dart
+++ b/dev/bots/analyze.dart
@@ -72,6 +72,9 @@
print('$clock Internationalization...');
await verifyInternationalizations();
+ print('$clock Integration test timeouts...');
+ await verifyIntegrationTestTimeouts(flutterRoot);
+
// Ensure that all package dependencies are in sync.
print('$clock Package dependencies...');
await runCommand(flutter, <String>['update-packages', '--verify-only'],
@@ -394,6 +397,31 @@
}
}
+Future<void> verifyIntegrationTestTimeouts(String workingDirectory) async {
+ final List<String> errors = <String>[];
+ final String dev = path.join(workingDirectory, 'dev');
+ final List<File> files = await _allFiles(dev, 'dart', minimumMatches: 1)
+ .where((File file) => file.path.contains('test_driver') && (file.path.endsWith('_test.dart') || file.path.endsWith('util.dart')))
+ .toList();
+ for (final File file in files) {
+ final String contents = file.readAsStringSync();
+ final int testCount = ' test('.allMatches(contents).length;
+ final int timeoutNoneCount = 'timeout: Timeout.none'.allMatches(contents).length;
+ if (testCount != timeoutNoneCount) {
+ errors.add('$yellow${file.path}$reset has at least $testCount test(s) but only $timeoutNoneCount `Timeout.none`(s).');
+ }
+ }
+ if (errors.isNotEmpty) {
+ exitWithError(<String>[
+ if (errors.length == 1)
+ '${bold}An error was detected when looking at import dependencies within the flutter_tools package:$reset'
+ else
+ '${bold}Multiple errors were detected when looking at import dependencies within the flutter_tools package:$reset',
+ ...errors.map((String paragraph) => '$paragraph\n'),
+ ]);
+ }
+}
+
Future<void> verifyInternationalizations() async {
final EvalResult materialGenResult = await _evalCommand(
dart,
@@ -1006,7 +1034,7 @@
);
if (evalResult.exitCode != 0) {
exitWithError(<String>[
- 'git ls-filese failed with exit code ${evalResult.exitCode}',
+ 'git ls-files failed with exit code ${evalResult.exitCode}',
'${bold}stdout:$reset',
evalResult.stdout,
'${bold}stderr:$reset',
diff --git a/dev/integration_tests/android_semantics_testing/test_driver/main_test.dart b/dev/integration_tests/android_semantics_testing/test_driver/main_test.dart
index 7c59114..8b8d2b4 100644
--- a/dev/integration_tests/android_semantics_testing/test_driver/main_test.dart
+++ b/dev/integration_tests/android_semantics_testing/test_driver/main_test.dart
@@ -161,7 +161,7 @@
],
),
);
- });
+ }, timeout: Timeout.none);
test('password TextField has correct Android semantics', () async {
final SerializableFinder passwordTextField = find.descendant(
@@ -229,7 +229,7 @@
],
),
);
- });
+ }, timeout: Timeout.none);
tearDownAll(() async {
await driver.tap(find.byValueKey('back'));
@@ -287,7 +287,7 @@
],
),
);
- });
+ }, timeout: Timeout.none);
test('Radio has correct Android semantics', () async {
Future<AndroidSemanticsNode> getRadioSemantics(String key) async {
return getSemantics(find.byValueKey(key));
@@ -323,7 +323,7 @@
],
),
);
- });
+ }, timeout: Timeout.none);
test('Switch has correct Android semantics', () async {
Future<AndroidSemanticsNode> getSwitchSemantics(String key) async {
return getSemantics(find.byValueKey(key));
@@ -359,7 +359,7 @@
],
),
);
- });
+ }, timeout: Timeout.none);
// Regression test for https://github.com/flutter/flutter/issues/20820.
test('Switch can be labeled', () async {
@@ -381,7 +381,7 @@
],
),
);
- });
+ }, timeout: Timeout.none);
tearDownAll(() async {
await driver.tap(find.byValueKey('back'));
@@ -461,7 +461,7 @@
} finally {
await driver.tap(find.byValueKey('$popupKeyValue.${popupItems.first}'));
}
- });
+ }, timeout: Timeout.none);
test('Dropdown Menu has correct Android semantics', () async {
expect(
@@ -551,7 +551,7 @@
),
);
}
- });
+ }, timeout: Timeout.none);
test('Modal alert dialog has correct Android semantics', () async {
expect(
@@ -647,7 +647,7 @@
} finally {
await driver.tap(find.byValueKey('$alertKeyValue.OK'));
}
- });
+ }, timeout: Timeout.none);
tearDownAll(() async {
await Future<void>.delayed(const Duration(milliseconds: 500));
@@ -665,14 +665,14 @@
await getSemantics(find.byValueKey(appBarTitleKeyValue)),
hasAndroidSemantics(isHeading: true),
);
- });
+ }, timeout: Timeout.none);
test('body text does not have Android heading semantics', () async {
expect(
await getSemantics(find.byValueKey(bodyTextKeyValue)),
hasAndroidSemantics(isHeading: false),
);
- });
+ }, timeout: Timeout.none);
tearDownAll(() async {
await driver.tap(find.byValueKey('back'));
diff --git a/dev/integration_tests/android_views/test_driver/main_test.dart b/dev/integration_tests/android_views/test_driver/main_test.dart
index 5893286..37d0297 100644
--- a/dev/integration_tests/android_views/test_driver/main_test.dart
+++ b/dev/integration_tests/android_views/test_driver/main_test.dart
@@ -27,7 +27,7 @@
expect(errorMessage, '');
final SerializableFinder backButton = find.byValueKey('back');
await driver.tap(backButton);
- });
+ }, timeout: Timeout.none);
group('WindowManager', ()
{
@@ -49,7 +49,7 @@
await driver.tap(showAlertDialog);
final String status = await driver.getText(find.byValueKey('Status'));
expect(status, 'Success');
- });
+ }, timeout: Timeout.none);
test('Child windows can handle touches', () async {
final SerializableFinder addWindow = find.byValueKey('AddWindow');
@@ -59,9 +59,8 @@
await driver.tap(tapWindow);
final String windowClickCount = await driver.getText(
find.byValueKey('WindowClickCount'),
- timeout: const Duration(seconds: 5),
);
expect(windowClickCount, 'Click count: 1');
- });
+ }, timeout: Timeout.none);
});
}
diff --git a/dev/integration_tests/channels/test_driver/main_test.dart b/dev/integration_tests/channels/test_driver/main_test.dart
index dcba327..7f9f171 100644
--- a/dev/integration_tests/channels/test_driver/main_test.dart
+++ b/dev/integration_tests/channels/test_driver/main_test.dart
@@ -25,7 +25,7 @@
if (status != 'complete') {
fail('Failed at step $step with status $status');
}
- }, timeout: const Timeout(Duration(minutes: 1)));
+ }, timeout: Timeout.none);
tearDownAll(() async {
driver.close();
diff --git a/dev/integration_tests/external_ui/test_driver/main_test.dart b/dev/integration_tests/external_ui/test_driver/main_test.dart
index fc96e45..474663e 100644
--- a/dev/integration_tests/external_ui/test_driver/main_test.dart
+++ b/dev/integration_tests/external_ui/test_driver/main_test.dart
@@ -59,7 +59,7 @@
expect(double.parse(matchFast.group(1)!), closeTo(flutterFrameRate * 2.0, 5.0));
expect(double.parse(matchFast.group(2)!), closeTo(flutterFrameRate, 10.0));
expect(int.parse(matchFast.group(3)!), 1);
- });
+ }, timeout: Timeout.none);
tearDownAll(() async {
driver.close();
diff --git a/dev/integration_tests/flavors/test_driver/main_test.dart b/dev/integration_tests/flavors/test_driver/main_test.dart
index af905f6..2bc8493 100644
--- a/dev/integration_tests/flavors/test_driver/main_test.dart
+++ b/dev/integration_tests/flavors/test_driver/main_test.dart
@@ -17,7 +17,7 @@
final SerializableFinder flavorField = find.byValueKey('flavor');
final String flavor = await driver.getText(flavorField);
expect(flavor, 'paid');
- });
+ }, timeout: Timeout.none);
tearDownAll(() async {
driver.close();
diff --git a/dev/integration_tests/flutter_gallery/test_driver/scroll_perf_test.dart b/dev/integration_tests/flutter_gallery/test_driver/scroll_perf_test.dart
index 19006e1..92401c8 100644
--- a/dev/integration_tests/flutter_gallery/test_driver/scroll_perf_test.dart
+++ b/dev/integration_tests/flutter_gallery/test_driver/scroll_perf_test.dart
@@ -42,6 +42,6 @@
final TimelineSummary summary = TimelineSummary.summarize(timeline);
await summary.writeTimelineToFile('home_scroll_perf', pretty: true);
- });
+ }, timeout: Timeout.none);
});
}
diff --git a/dev/integration_tests/flutter_gallery/test_driver/scroll_perf_web_test.dart b/dev/integration_tests/flutter_gallery/test_driver/scroll_perf_web_test.dart
index fbd61d5..f30932d 100644
--- a/dev/integration_tests/flutter_gallery/test_driver/scroll_perf_web_test.dart
+++ b/dev/integration_tests/flutter_gallery/test_driver/scroll_perf_web_test.dart
@@ -35,6 +35,6 @@
await driver.scroll(demoList, 0.0, 300.0, const Duration(milliseconds: 300));
await Future<void>.delayed(const Duration(milliseconds: 500));
}
- });
+ }, timeout: Timeout.none);
});
}
diff --git a/dev/integration_tests/flutter_gallery/test_driver/transitions_perf_e2e.dart b/dev/integration_tests/flutter_gallery/test_driver/transitions_perf_e2e.dart
index 0225af5..cb3a817 100644
--- a/dev/integration_tests/flutter_gallery/test_driver/transitions_perf_e2e.dart
+++ b/dev/integration_tests/flutter_gallery/test_driver/transitions_perf_e2e.dart
@@ -48,7 +48,6 @@
..removeAll(kProfiledDemos);
await runDemos(unprofiledDemos.toList(), tester);
},
- timeout: const Timeout(Duration(minutes: 5)),
semanticsEnabled: withSemantics,
);
});
diff --git a/dev/integration_tests/flutter_gallery/test_driver/transitions_perf_e2e_test.dart b/dev/integration_tests/flutter_gallery/test_driver/transitions_perf_e2e_test.dart
index e4936e8..6ea8511 100644
--- a/dev/integration_tests/flutter_gallery/test_driver/transitions_perf_e2e_test.dart
+++ b/dev/integration_tests/flutter_gallery/test_driver/transitions_perf_e2e_test.dart
@@ -5,7 +5,6 @@
import 'package:integration_test/integration_test_driver.dart' as driver;
Future<void> main() => driver.integrationDriver(
- timeout: const Duration(minutes: 5),
responseDataCallback: (Map<String, dynamic>? data) async {
await driver.writeResponseData(
data!['performance'] as Map<String, dynamic>,
diff --git a/dev/integration_tests/flutter_gallery/test_driver/transitions_perf_test.dart b/dev/integration_tests/flutter_gallery/test_driver/transitions_perf_test.dart
index e6b7d7d..5f36f06 100644
--- a/dev/integration_tests/flutter_gallery/test_driver/transitions_perf_test.dart
+++ b/dev/integration_tests/flutter_gallery/test_driver/transitions_perf_test.dart
@@ -130,7 +130,6 @@
await driver.scrollUntilVisible(demoList, demoItem,
dyScroll: -48.0,
alignment: 0.5,
- timeout: const Duration(seconds: 30),
);
for (int i = 0; i < 2; i += 1) {
@@ -181,7 +180,7 @@
// Assert that we can use semantics related finders in profile mode.
final int id = await driver.getSemanticsId(find.bySemanticsLabel('Material'));
expect(id, greaterThan(-1));
- }, skip: !withSemantics);
+ }, skip: !withSemantics, timeout: Timeout.none);
test('all demos', () async {
// Collect timeline data for just a limited set of demos to avoid OOMs.
@@ -218,6 +217,6 @@
await runDemos(unprofiledDemos.toList(), driver);
}
- }, timeout: const Timeout(Duration(minutes: 5)));
+ }, timeout: Timeout.none);
});
}
diff --git a/dev/integration_tests/hybrid_android_views/test_driver/main_test.dart b/dev/integration_tests/hybrid_android_views/test_driver/main_test.dart
index 7bf8843..0ad2ff0 100644
--- a/dev/integration_tests/hybrid_android_views/test_driver/main_test.dart
+++ b/dev/integration_tests/hybrid_android_views/test_driver/main_test.dart
@@ -25,7 +25,7 @@
expect(errorMessage, '');
final SerializableFinder backButton = find.byValueKey('back');
await driver.tap(backButton);
- });
+ }, timeout: Timeout.none);
group('Nested View Event', () {
setUpAll(() async {
@@ -45,7 +45,7 @@
await driver.tap(showAlertDialog);
final String status = await driver.getText(find.byValueKey('Status'));
expect(status, 'Success');
- });
+ }, timeout: Timeout.none);
test('Child view can handle touches', () async {
final SerializableFinder addChildView = find.byValueKey('AddChildView');
@@ -56,7 +56,7 @@
final String nestedViewClickCount =
await driver.getText(find.byValueKey('NestedViewClickCount'));
expect(nestedViewClickCount, 'Click count: 1');
- });
+ }, timeout: Timeout.none);
});
group('Flutter surface switch', () {
@@ -107,6 +107,6 @@
' |-ViewGroup\n'
' |-FlutterImageView\n' // Flutter UI (overlay surface)
);
- });
+ }, timeout: Timeout.none);
});
}
diff --git a/dev/integration_tests/ios_platform_view_tests/test_driver/main_test.dart b/dev/integration_tests/ios_platform_view_tests/test_driver/main_test.dart
index ed36c7d..4cd8fe3 100644
--- a/dev/integration_tests/ios_platform_view_tests/test_driver/main_test.dart
+++ b/dev/integration_tests/ios_platform_view_tests/test_driver/main_test.dart
@@ -40,7 +40,7 @@
final Health driverHealth = await driver.checkHealth();
expect(driverHealth.status, HealthStatus.ok);
- });
+ }, timeout: Timeout.none);
test('Merge thread to create and remove platform views should not crash',
() async {
@@ -65,6 +65,6 @@
final Health driverHealth = await driver.checkHealth();
expect(driverHealth.status, HealthStatus.ok);
- });
+ }, timeout: Timeout.none);
});
}
diff --git a/dev/integration_tests/platform_interaction/test_driver/main_test.dart b/dev/integration_tests/platform_interaction/test_driver/main_test.dart
index 277114c..4d7fbba 100644
--- a/dev/integration_tests/platform_interaction/test_driver/main_test.dart
+++ b/dev/integration_tests/platform_interaction/test_driver/main_test.dart
@@ -25,7 +25,7 @@
if (status != 'complete') {
fail('Failed at step $step with status $status');
}
- });
+ }, timeout: Timeout.none);
tearDownAll(() async {
driver.close();
diff --git a/dev/integration_tests/ui/test_driver/commands_debug_paint_test.dart b/dev/integration_tests/ui/test_driver/commands_debug_paint_test.dart
index f5fbdf1..270d0c6 100644
--- a/dev/integration_tests/ui/test_driver/commands_debug_paint_test.dart
+++ b/dev/integration_tests/ui/test_driver/commands_debug_paint_test.dart
@@ -18,5 +18,5 @@
test('check that we are painting in debugPaintSize mode', () async {
expect(await driver.requestData('status'), 'log: paint debugPaintSize');
- });
+ }, timeout: Timeout.none);
}
diff --git a/dev/integration_tests/ui/test_driver/commands_none_test.dart b/dev/integration_tests/ui/test_driver/commands_none_test.dart
index dfdb903..dfb20df 100644
--- a/dev/integration_tests/ui/test_driver/commands_none_test.dart
+++ b/dev/integration_tests/ui/test_driver/commands_none_test.dart
@@ -18,6 +18,6 @@
test('check that we are in normal mode', () async {
expect(await driver.requestData('status'), 'log: paint');
- await driver.waitForAbsent(find.byType('PerformanceOverlay'), timeout: Duration.zero);
- });
+ await driver.waitForAbsent(find.byType('PerformanceOverlay'));
+ }, timeout: Timeout.none);
}
diff --git a/dev/integration_tests/ui/test_driver/commands_performance_overlay_test.dart b/dev/integration_tests/ui/test_driver/commands_performance_overlay_test.dart
index c489055..85f13ef 100644
--- a/dev/integration_tests/ui/test_driver/commands_performance_overlay_test.dart
+++ b/dev/integration_tests/ui/test_driver/commands_performance_overlay_test.dart
@@ -18,6 +18,6 @@
test('check that we are showing the performance overlay', () async {
await driver.requestData('status'); // force a reassemble
- await driver.waitFor(find.byType('PerformanceOverlay'), timeout: Duration.zero);
- });
+ await driver.waitFor(find.byType('PerformanceOverlay'));
+ }, timeout: Timeout.none);
}
diff --git a/dev/integration_tests/ui/test_driver/defines_test.dart b/dev/integration_tests/ui/test_driver/defines_test.dart
index 63665b8..38a156c 100644
--- a/dev/integration_tests/ui/test_driver/defines_test.dart
+++ b/dev/integration_tests/ui/test_driver/defines_test.dart
@@ -18,5 +18,5 @@
test('Can run with --dart-define', () async {
await driver.waitFor(find.text('Example,AValue'));
- });
+ }, timeout: Timeout.none);
}
diff --git a/dev/integration_tests/ui/test_driver/driver_test.dart b/dev/integration_tests/ui/test_driver/driver_test.dart
index 2f8c966..105ed47 100644
--- a/dev/integration_tests/ui/test_driver/driver_test.dart
+++ b/dev/integration_tests/ui/test_driver/driver_test.dart
@@ -23,7 +23,7 @@
test('waitFor should find text "present"', () async {
await driver.waitFor(presentText);
- });
+ }, timeout: Timeout.none);
test('waitForAbsent should time out waiting for text "present" to disappear', () async {
await expectLater(
@@ -34,7 +34,7 @@
contains('Timeout while executing waitForAbsent'),
)),
);
- });
+ }, timeout: Timeout.none);
test('waitForAbsent should resolve when text "present" disappears', () async {
// Begin waiting for it to disappear
@@ -50,7 +50,7 @@
// Ensure waitForAbsent resolves
await whenWaitForAbsentResolves.future;
- });
+ }, timeout: Timeout.none);
test('waitFor times out waiting for "present" to reappear', () async {
await expectLater(
@@ -61,7 +61,7 @@
contains('Timeout while executing waitFor'),
)),
);
- });
+ }, timeout: Timeout.none);
test('waitFor should resolve when text "present" reappears', () async {
// Begin waiting for it to reappear
@@ -77,11 +77,11 @@
// Ensure waitFor resolves
await whenWaitForResolves.future;
- });
+ }, timeout: Timeout.none);
test('waitForAbsent resolves immediately when the element does not exist', () async {
await driver.waitForAbsent(find.text('that does not exist'));
- });
+ }, timeout: Timeout.none);
test('uses hit test to determine tappable elements', () async {
final SerializableFinder a = find.byValueKey('a');
@@ -97,7 +97,7 @@
// Close it again
await driver.tap(a);
await driver.waitForAbsent(menu);
- });
+ }, timeout: Timeout.none);
test('enters text in a text field', () async {
final SerializableFinder textField = find.byValueKey('enter-text-field');
@@ -106,6 +106,6 @@
await driver.waitFor(find.text('Hello!'));
await driver.enterText('World!');
await driver.waitFor(find.text('World!'));
- });
+ }, timeout: Timeout.none);
});
}
diff --git a/dev/integration_tests/ui/test_driver/empty_test.dart b/dev/integration_tests/ui/test_driver/empty_test.dart
index 2daec60..482a7a1 100644
--- a/dev/integration_tests/ui/test_driver/empty_test.dart
+++ b/dev/integration_tests/ui/test_driver/empty_test.dart
@@ -18,6 +18,6 @@
await driver.close();
});
- test('empty', () async {}, timeout: const Timeout(Duration(minutes: 1)));
+ test('empty', () async {}, timeout: Timeout.none);
});
}
diff --git a/dev/integration_tests/ui/test_driver/keyboard_resize_test.dart b/dev/integration_tests/ui/test_driver/keyboard_resize_test.dart
index d224142..db70d5b 100644
--- a/dev/integration_tests/ui/test_driver/keyboard_resize_test.dart
+++ b/dev/integration_tests/ui/test_driver/keyboard_resize_test.dart
@@ -59,6 +59,6 @@
}
}
expect(heightTextDidExpand, isTrue);
- });
+ }, timeout: Timeout.none);
});
}
diff --git a/dev/integration_tests/ui/test_driver/keyboard_textfield_test.dart b/dev/integration_tests/ui/test_driver/keyboard_textfield_test.dart
index 9eecafe..ed770c5 100644
--- a/dev/integration_tests/ui/test_driver/keyboard_textfield_test.dart
+++ b/dev/integration_tests/ui/test_driver/keyboard_textfield_test.dart
@@ -46,6 +46,6 @@
// Ensure the scroll offset changed appropriately when TextField scrolled back into view.
expect(scrollOffsetWithKeyboard, greaterThan(scrollOffsetWithoutKeyboard));
- });
+ }, timeout: Timeout.none);
});
}
diff --git a/dev/integration_tests/ui/test_driver/license_check_test.dart b/dev/integration_tests/ui/test_driver/license_check_test.dart
index 56f04f0..758c607 100644
--- a/dev/integration_tests/ui/test_driver/license_check_test.dart
+++ b/dev/integration_tests/ui/test_driver/license_check_test.dart
@@ -37,7 +37,7 @@
final String foundLicense = await driver.getText(find.byValueKey('FlutterLicense'));
expect(foundPackage, equals('flutter'));
expect(foundLicense, equals(license));
- });
+ }, timeout: Timeout.none);
test('engine license', () async {
await driver.waitFor(find.byValueKey('Header'));
@@ -46,6 +46,6 @@
expect(foundPackage, equals('engine'));
// The engine has the same license, but with a different Copyright date.
expect(foundLicense, contains(license.replaceFirst('2014', '2013')));
- });
+ }, timeout: Timeout.none);
});
}
diff --git a/dev/integration_tests/ui/test_driver/route_test.dart b/dev/integration_tests/ui/test_driver/route_test.dart
index 6f1ecf5..d9f5479 100644
--- a/dev/integration_tests/ui/test_driver/route_test.dart
+++ b/dev/integration_tests/ui/test_driver/route_test.dart
@@ -22,6 +22,6 @@
// This only makes sense if you ran the test as described
// in the test file. It's normally run from devicelab.
expect(await driver.requestData('route'), '/smuggle-it');
- });
+ }, timeout: Timeout.none);
});
}
diff --git a/dev/integration_tests/ui/test_driver/screenshot_test.dart b/dev/integration_tests/ui/test_driver/screenshot_test.dart
index 34618c1..b5df865 100644
--- a/dev/integration_tests/ui/test_driver/screenshot_test.dart
+++ b/dev/integration_tests/ui/test_driver/screenshot_test.dart
@@ -48,6 +48,6 @@
imageBefore = imageAfter;
}
- }, timeout: const Timeout(Duration(minutes: 2)));
+ }, timeout: Timeout.none);
});
}
diff --git a/packages/integration_test/example/test_driver/failure_test.dart b/packages/integration_test/example/test_driver/failure_test.dart
index b74e9ed..2904cde 100644
--- a/packages/integration_test/example/test_driver/failure_test.dart
+++ b/packages/integration_test/example/test_driver/failure_test.dart
@@ -20,5 +20,5 @@
response.allTestsPassed,
false,
);
- });
+ }, timeout: Timeout.none);
}
diff --git a/packages/integration_test/lib/integration_test_driver.dart b/packages/integration_test/lib/integration_test_driver.dart
index 866785e..e01a229 100644
--- a/packages/integration_test/lib/integration_test_driver.dart
+++ b/packages/integration_test/lib/integration_test_driver.dart
@@ -64,7 +64,7 @@
///
/// ```
Future<void> integrationDriver({
- Duration timeout = const Duration(minutes: 1),
+ Duration timeout = const Duration(minutes: 20),
ResponseDataCallback? responseDataCallback = writeResponseData,
}) async {
final FlutterDriver driver = await FlutterDriver.connect();