Creates a way to test private APIs in the Flutter package. (#65505)
diff --git a/dev/bots/test.dart b/dev/bots/test.dart
index 3a160b7..fc6cc0b 100644
--- a/dev/bots/test.dart
+++ b/dev/bots/test.dart
@@ -92,7 +92,6 @@
'test/widgets/selectable_text_test.dart',
'test/widgets/color_filter_test.dart',
'test/widgets/editable_text_cursor_test.dart',
- 'test/material/animated_icons_private_test.dart',
'test/material/data_table_test.dart',
'test/cupertino/nav_bar_transition_test.dart',
'test/cupertino/refresh_test.dart',
@@ -578,6 +577,40 @@
}
}
+ Future<void> runPrivateTests() async {
+ final List<String> args = <String>[
+ 'run',
+ '--enable-experiment=non-nullable',
+ '--sound-null-safety',
+ 'test_private.dart',
+ ];
+ final Map<String, String> pubEnvironment = <String, String>{
+ 'FLUTTER_ROOT': flutterRoot,
+ };
+ if (Directory(pubCache).existsSync()) {
+ pubEnvironment['PUB_CACHE'] = pubCache;
+ }
+
+ // If an existing env variable exists append to it, but only if
+ // it doesn't appear to already include enable-asserts.
+ String toolsArgs = Platform.environment['FLUTTER_TOOL_ARGS'] ?? '';
+ if (!toolsArgs.contains('--enable-asserts')) {
+ toolsArgs += ' --enable-asserts';
+ }
+ pubEnvironment['FLUTTER_TOOL_ARGS'] = toolsArgs.trim();
+ // The flutter_tool will originally have been snapshotted without asserts.
+ // We need to force it to be regenerated with them enabled.
+ deleteFile(path.join(flutterRoot, 'bin', 'cache', 'flutter_tools.snapshot'));
+ deleteFile(path.join(flutterRoot, 'bin', 'cache', 'flutter_tools.stamp'));
+
+ await runCommand(
+ pub,
+ args,
+ workingDirectory: path.join(flutterRoot, 'packages', 'flutter', 'test_private'),
+ environment: pubEnvironment,
+ );
+ }
+
Future<void> runMisc() async {
print('${green}Running package tests$reset for directories other than packages/flutter');
await _pubRunTest(path.join(flutterRoot, 'dev', 'bots'), tableData: bigqueryApi?.tabledata);
@@ -602,6 +635,7 @@
options: <String>['--enable-vmservice'],
tableData: bigqueryApi?.tabledata,
);
+ await runPrivateTests();
const String httpClientWarning =
'Warning: At least one test in this suite creates an HttpClient. When\n'
'running a test suite that uses TestWidgetsFlutterBinding, all HTTP\n'