Move web integration tool tests to web.shard (#70226)
* Move web integration tool tests to web.shard
Web integration tool tests depend on DDC changes in SDK. This change
moves them to a separate shard and subshard so CI bot configurations
can run them separately.
In particular, with will allow running those tests on dart CI flutter
HHH web bot instead of a non-web one, allowing early detection and easy
classification of issues caused by SDK changes as VM- or Web related.
* Enabled verbose mode for flaky web_tool_tests
* Split out the test changes to be commited first
diff --git a/dev/bots/test.dart b/dev/bots/test.dart
index 89f59d0..c8a659f 100644
--- a/dev/bots/test.dart
+++ b/dev/bots/test.dart
@@ -125,6 +125,7 @@
'framework_tests': _runFrameworkTests,
'tool_coverage': _runToolCoverage,
'tool_tests': _runToolTests,
+ 'web_tool_tests': _runWebToolTests,
'web_tests': _runWebUnitTests,
'web_integration_tests': _runWebIntegrationTests,
'web_long_running_tests': _runWebLongRunningTests,
@@ -313,6 +314,7 @@
Future<void> _runToolTests() async {
const String kDotShard = '.shard';
+ const String kWeb = 'web';
const String kTest = 'test';
final String toolsPath = path.join(flutterRoot, 'packages', 'flutter_tools');
@@ -321,6 +323,7 @@
.listSync()
.map<String>((FileSystemEntity entry) => entry.path)
.where((String name) => name.endsWith(kDotShard))
+ .where((String name) => path.basenameWithoutExtension(name) != kWeb)
.map<String>((String name) => path.basenameWithoutExtension(name)),
// The `dynamic` on the next line is because Map.fromIterable isn't generic.
value: (dynamic subshard) => () async {
@@ -337,10 +340,27 @@
);
},
);
- // Prevent web tests from running if not explicitly requested.
- if (Platform.environment[CIRRUS_TASK_NAME] == null) {
- subshards.remove('web');
- }
+
+ await selectSubshard(subshards);
+}
+
+Future<void> _runWebToolTests() async {
+ const String kDotShard = '.shard';
+ const String kWeb = 'web';
+ const String kTest = 'test';
+ final String toolsPath = path.join(flutterRoot, 'packages', 'flutter_tools');
+
+ final Map<String, ShardRunner> subshards = <String, ShardRunner>{
+ kWeb:
+ () async {
+ await _pubRunTest(
+ toolsPath,
+ forceSingleCore: true,
+ testPaths: <String>[path.join(kTest, '$kWeb$kDotShard', '')],
+ enableFlutterToolAsserts: true,
+ );
+ }
+ };
await selectSubshard(subshards);
}