mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
Shard framework tests (#34812)
This commit is contained in:
parent
25a3121dfd
commit
a0fc3f3150
53
.cirrus.yml
53
.cirrus.yml
@ -58,10 +58,31 @@ task:
|
|||||||
- name: analyze
|
- name: analyze
|
||||||
test_script:
|
test_script:
|
||||||
- dart --enable-asserts ./dev/bots/analyze.dart
|
- dart --enable-asserts ./dev/bots/analyze.dart
|
||||||
- name: tests-linux
|
- name: tests_widgets-linux
|
||||||
env:
|
env:
|
||||||
GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
|
GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
|
||||||
SHARD: tests
|
SHARD: tests
|
||||||
|
SUBSHARD: widgets
|
||||||
|
test_script:
|
||||||
|
- dart --enable-asserts ./dev/bots/test.dart
|
||||||
|
container:
|
||||||
|
cpu: 4
|
||||||
|
memory: 12G
|
||||||
|
- name: tests_framework_other-linux
|
||||||
|
env:
|
||||||
|
GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
|
||||||
|
SHARD: tests
|
||||||
|
SUBSHARD: framework_other
|
||||||
|
test_script:
|
||||||
|
- dart --enable-asserts ./dev/bots/test.dart
|
||||||
|
container:
|
||||||
|
cpu: 4
|
||||||
|
memory: 12G
|
||||||
|
- name: tests_extras-linux
|
||||||
|
env:
|
||||||
|
GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
|
||||||
|
SHARD: tests
|
||||||
|
SUBSHARD: extras
|
||||||
test_script:
|
test_script:
|
||||||
- dart --enable-asserts ./dev/bots/test.dart
|
- dart --enable-asserts ./dev/bots/test.dart
|
||||||
container:
|
container:
|
||||||
@ -152,10 +173,21 @@ task:
|
|||||||
test_all_script:
|
test_all_script:
|
||||||
- bin\cache\dart-sdk\bin\dart.exe --enable-asserts dev\bots\test.dart
|
- bin\cache\dart-sdk\bin\dart.exe --enable-asserts dev\bots\test.dart
|
||||||
matrix:
|
matrix:
|
||||||
- name: tests-windows
|
- name: tests_widgets-windows
|
||||||
env:
|
env:
|
||||||
GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
|
GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
|
||||||
SHARD: tests
|
SHARD: tests
|
||||||
|
SUBSHARD: widgets
|
||||||
|
- name: tests_framework_other-windows
|
||||||
|
env:
|
||||||
|
GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
|
||||||
|
SHARD: tests
|
||||||
|
SUBSHARD: framework_other
|
||||||
|
- name: tests_extras-windows
|
||||||
|
env:
|
||||||
|
GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
|
||||||
|
SHARD: tests
|
||||||
|
SUBSHARD: extras
|
||||||
- name: tool_tests-windows
|
- name: tool_tests-windows
|
||||||
env:
|
env:
|
||||||
GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
|
GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
|
||||||
@ -221,10 +253,21 @@ task:
|
|||||||
CIRRUS_WORKING_DIR: "/tmp/flutter sdk"
|
CIRRUS_WORKING_DIR: "/tmp/flutter sdk"
|
||||||
COCOAPODS_DISABLE_STATS: true
|
COCOAPODS_DISABLE_STATS: true
|
||||||
matrix:
|
matrix:
|
||||||
- name: tests-macos
|
- name: tests_widgets-macos
|
||||||
env:
|
env:
|
||||||
GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
|
GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
|
||||||
SHARD: tests
|
SHARD: tests
|
||||||
|
SUBSHARD: widgets
|
||||||
|
- name: tests_framework_other-macos
|
||||||
|
env:
|
||||||
|
GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
|
||||||
|
SHARD: tests
|
||||||
|
SUBSHARD: framework_other
|
||||||
|
- name: tests_extras-macos
|
||||||
|
env:
|
||||||
|
GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
|
||||||
|
SHARD: tests
|
||||||
|
SUBSHARD: extras
|
||||||
- name: tool_tests-macos
|
- name: tool_tests-macos
|
||||||
env:
|
env:
|
||||||
GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
|
GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
|
||||||
@ -279,7 +322,9 @@ docker_builder:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- docs
|
- docs
|
||||||
- analyze
|
- analyze
|
||||||
- tests-linux
|
- tests_widgets-linux
|
||||||
|
- tests_framework_other-linux
|
||||||
|
- tests_extras-linux
|
||||||
- tool_tests-linux
|
- tool_tests-linux
|
||||||
- build_tests-linux
|
- build_tests-linux
|
||||||
- integration_tests-linux
|
- integration_tests-linux
|
||||||
|
@ -307,35 +307,97 @@ Future<void> _runAdd2AppTest() async {
|
|||||||
Future<void> _runTests() async {
|
Future<void> _runTests() async {
|
||||||
final bq.BigqueryApi bigqueryApi = await _getBigqueryApi();
|
final bq.BigqueryApi bigqueryApi = await _getBigqueryApi();
|
||||||
await _runSmokeTests();
|
await _runSmokeTests();
|
||||||
|
final String subShard = Platform.environment['SUBSHARD'];
|
||||||
|
|
||||||
await _runFlutterTest(path.join(flutterRoot, 'packages', 'flutter'), tableData: bigqueryApi?.tabledata);
|
Future<void> runWidgets() async {
|
||||||
// Only packages/flutter/test/widgets/widget_inspector_test.dart really
|
await _runFlutterTest(
|
||||||
// needs to be run with --track-widget-creation but it is nice to run
|
path.join(flutterRoot, 'packages', 'flutter'),
|
||||||
// all of the tests in package:flutter with the flag to ensure that
|
tableData: bigqueryApi?.tabledata,
|
||||||
// the Dart kernel transformer triggered by the flag does not break anything.
|
tests: <String>[
|
||||||
await _runFlutterTest(path.join(flutterRoot, 'packages', 'flutter'), options: <String>['--track-widget-creation'], tableData: bigqueryApi?.tabledata);
|
'test/widgets/',
|
||||||
await _runFlutterTest(path.join(flutterRoot, 'packages', 'flutter_localizations'), tableData: bigqueryApi?.tabledata);
|
],
|
||||||
await _runFlutterTest(path.join(flutterRoot, 'packages', 'flutter_driver'), tableData: bigqueryApi?.tabledata);
|
);
|
||||||
await _runFlutterTest(path.join(flutterRoot, 'packages', 'flutter_test'), tableData: bigqueryApi?.tabledata);
|
// Only packages/flutter/test/widgets/widget_inspector_test.dart really
|
||||||
await _runFlutterTest(path.join(flutterRoot, 'packages', 'fuchsia_remote_debug_protocol'), tableData: bigqueryApi?.tabledata);
|
// needs to be run with --track-widget-creation but it is nice to run
|
||||||
await _pubRunTest(path.join(flutterRoot, 'dev', 'bots'), tableData: bigqueryApi?.tabledata);
|
// all of the tests in package:flutter with the flag to ensure that
|
||||||
await _pubRunTest(path.join(flutterRoot, 'dev', 'devicelab'), tableData: bigqueryApi?.tabledata);
|
// the Dart kernel transformer triggered by the flag does not break anything.
|
||||||
await _pubRunTest(path.join(flutterRoot, 'dev', 'snippets'), tableData: bigqueryApi?.tabledata);
|
await _runFlutterTest(
|
||||||
await _runFlutterTest(path.join(flutterRoot, 'dev', 'integration_tests', 'android_semantics_testing'), tableData: bigqueryApi?.tabledata);
|
path.join(flutterRoot, 'packages', 'flutter'),
|
||||||
await _runFlutterTest(path.join(flutterRoot, 'dev', 'manual_tests'), tableData: bigqueryApi?.tabledata);
|
options: <String>['--track-widget-creation'],
|
||||||
await _runFlutterTest(path.join(flutterRoot, 'dev', 'tools', 'vitool'), tableData: bigqueryApi?.tabledata);
|
tableData: bigqueryApi?.tabledata,
|
||||||
await _runFlutterTest(path.join(flutterRoot, 'examples', 'hello_world'), tableData: bigqueryApi?.tabledata);
|
tests: <String>[
|
||||||
await _runFlutterTest(path.join(flutterRoot, 'examples', 'layers'), tableData: bigqueryApi?.tabledata);
|
'test/widgets/',
|
||||||
await _runFlutterTest(path.join(flutterRoot, 'examples', 'stocks'), tableData: bigqueryApi?.tabledata);
|
],
|
||||||
await _runFlutterTest(path.join(flutterRoot, 'examples', 'flutter_gallery'), tableData: bigqueryApi?.tabledata);
|
);
|
||||||
// Regression test to ensure that code outside of package:flutter can run
|
}
|
||||||
// with --track-widget-creation.
|
|
||||||
await _runFlutterTest(path.join(flutterRoot, 'examples', 'flutter_gallery'), options: <String>['--track-widget-creation'], tableData: bigqueryApi?.tabledata);
|
Future<void> runFrameworkOthers() async {
|
||||||
await _runFlutterTest(path.join(flutterRoot, 'examples', 'catalog'), tableData: bigqueryApi?.tabledata);
|
final List<String> tests = Directory(path.join(flutterRoot, 'packages', 'flutter', 'test'))
|
||||||
// Smoke test for code generation.
|
.listSync(followLinks: false, recursive: false)
|
||||||
await _runFlutterTest(path.join(flutterRoot, 'dev', 'integration_tests', 'codegen'), tableData: bigqueryApi?.tabledata, environment: <String, String>{
|
.whereType<Directory>()
|
||||||
'FLUTTER_EXPERIMENTAL_BUILD': 'true',
|
.map((Directory dir) => 'test/${path.basename(dir.path)}/')
|
||||||
});
|
.toList();
|
||||||
|
|
||||||
|
print('Running tests for: ${tests.join(';')}');
|
||||||
|
|
||||||
|
await _runFlutterTest(
|
||||||
|
path.join(flutterRoot, 'packages', 'flutter'),
|
||||||
|
tableData: bigqueryApi?.tabledata,
|
||||||
|
tests: tests,
|
||||||
|
);
|
||||||
|
// Only packages/flutter/test/widgets/widget_inspector_test.dart really
|
||||||
|
// needs to be run with --track-widget-creation but it is nice to run
|
||||||
|
// all of the tests in package:flutter with the flag to ensure that
|
||||||
|
// the Dart kernel transformer triggered by the flag does not break anything.
|
||||||
|
await _runFlutterTest(
|
||||||
|
path.join(flutterRoot, 'packages', 'flutter'),
|
||||||
|
options: <String>['--track-widget-creation'],
|
||||||
|
tableData: bigqueryApi?.tabledata,
|
||||||
|
tests: tests,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> runExtras() async {
|
||||||
|
await _runFlutterTest(path.join(flutterRoot, 'packages', 'flutter_localizations'), tableData: bigqueryApi?.tabledata);
|
||||||
|
await _runFlutterTest(path.join(flutterRoot, 'packages', 'flutter_driver'), tableData: bigqueryApi?.tabledata);
|
||||||
|
await _runFlutterTest(path.join(flutterRoot, 'packages', 'flutter_test'), tableData: bigqueryApi?.tabledata);
|
||||||
|
await _runFlutterTest(path.join(flutterRoot, 'packages', 'fuchsia_remote_debug_protocol'), tableData: bigqueryApi?.tabledata);
|
||||||
|
await _pubRunTest(path.join(flutterRoot, 'dev', 'bots'), tableData: bigqueryApi?.tabledata);
|
||||||
|
await _pubRunTest(path.join(flutterRoot, 'dev', 'devicelab'), tableData: bigqueryApi?.tabledata);
|
||||||
|
await _pubRunTest(path.join(flutterRoot, 'dev', 'snippets'), tableData: bigqueryApi?.tabledata);
|
||||||
|
await _runFlutterTest(path.join(flutterRoot, 'dev', 'integration_tests', 'android_semantics_testing'), tableData: bigqueryApi?.tabledata);
|
||||||
|
await _runFlutterTest(path.join(flutterRoot, 'dev', 'manual_tests'), tableData: bigqueryApi?.tabledata);
|
||||||
|
await _runFlutterTest(path.join(flutterRoot, 'dev', 'tools', 'vitool'), tableData: bigqueryApi?.tabledata);
|
||||||
|
await _runFlutterTest(path.join(flutterRoot, 'examples', 'hello_world'), tableData: bigqueryApi?.tabledata);
|
||||||
|
await _runFlutterTest(path.join(flutterRoot, 'examples', 'layers'), tableData: bigqueryApi?.tabledata);
|
||||||
|
await _runFlutterTest(path.join(flutterRoot, 'examples', 'stocks'), tableData: bigqueryApi?.tabledata);
|
||||||
|
await _runFlutterTest(path.join(flutterRoot, 'examples', 'flutter_gallery'), tableData: bigqueryApi?.tabledata);
|
||||||
|
// Regression test to ensure that code outside of package:flutter can run
|
||||||
|
// with --track-widget-creation.
|
||||||
|
await _runFlutterTest(path.join(flutterRoot, 'examples', 'flutter_gallery'), options: <String>['--track-widget-creation'], tableData: bigqueryApi?.tabledata);
|
||||||
|
await _runFlutterTest(path.join(flutterRoot, 'examples', 'catalog'), tableData: bigqueryApi?.tabledata);
|
||||||
|
// Smoke test for code generation.
|
||||||
|
await _runFlutterTest(path.join(flutterRoot, 'dev', 'integration_tests', 'codegen'), tableData: bigqueryApi?.tabledata, environment: <String, String>{
|
||||||
|
'FLUTTER_EXPERIMENTAL_BUILD': 'true',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
switch (subShard) {
|
||||||
|
case 'widgets':
|
||||||
|
await runWidgets();
|
||||||
|
break;
|
||||||
|
case 'framework_other':
|
||||||
|
await runFrameworkOthers();
|
||||||
|
break;
|
||||||
|
case 'extras':
|
||||||
|
runExtras();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
print('Unknown sub-shard $subShard, running all tests!');
|
||||||
|
await runWidgets();
|
||||||
|
await runFrameworkOthers();
|
||||||
|
await runExtras();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
print('${bold}DONE: All tests successful.$reset');
|
print('${bold}DONE: All tests successful.$reset');
|
||||||
}
|
}
|
||||||
@ -649,6 +711,7 @@ Future<void> _runFlutterTest(String workingDirectory, {
|
|||||||
Duration timeout = _kLongTimeout,
|
Duration timeout = _kLongTimeout,
|
||||||
bq.TabledataResourceApi tableData,
|
bq.TabledataResourceApi tableData,
|
||||||
Map<String, String> environment,
|
Map<String, String> environment,
|
||||||
|
List<String> tests = const <String>[],
|
||||||
}) async {
|
}) async {
|
||||||
final List<String> args = <String>['test']..addAll(options);
|
final List<String> args = <String>['test']..addAll(options);
|
||||||
if (flutterTestArgs != null && flutterTestArgs.isNotEmpty)
|
if (flutterTestArgs != null && flutterTestArgs.isNotEmpty)
|
||||||
@ -673,6 +736,9 @@ Future<void> _runFlutterTest(String workingDirectory, {
|
|||||||
}
|
}
|
||||||
args.add(script);
|
args.add(script);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
args.addAll(tests);
|
||||||
|
|
||||||
if (!shouldProcessOutput) {
|
if (!shouldProcessOutput) {
|
||||||
return runCommand(flutter, args,
|
return runCommand(flutter, args,
|
||||||
workingDirectory: workingDirectory,
|
workingDirectory: workingDirectory,
|
||||||
|
Loading…
Reference in New Issue
Block a user