Skip to content

Commit 30f4fec

Browse files
authored
Add piping and bringup nodes for _vulkan and _opengles suites. (flutter#162020)
Towards flutter#161333. This adds the initial `.ci.yaml` configuration (marked `bringup: true`), without changing the existing shard to avoid the problems we ran into last time when I renamed the shard atomically, as well as piping for providing context in which the test will run (Vulkan or OpenGLES), which can't be introspected in the _running_ app. In a follow-up PR I'll: - Edit `AndroidManifest.xml` before the suite, setting `ImpellerBackend` appropriately - Move the bringup nodes to presubmit - Delete the existing (legacy) node
1 parent e039219 commit 30f4fec

12 files changed

+73
-23
lines changed

.ci.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1523,6 +1523,32 @@ targets:
15231523
- engine/**
15241524
- DEPS
15251525

1526+
- name: Linux_android_emu_34 android_engine_vulkan_tests
1527+
recipe: flutter/flutter_drone
1528+
bringup: true
1529+
timeout: 60
1530+
properties:
1531+
shard: android_engine_vulkan_tests
1532+
tags: >
1533+
["framework", "hostonly", "shard", "linux"]
1534+
dependencies: >-
1535+
[
1536+
{"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}
1537+
]
1538+
1539+
- name: Linux_android_emu_34 android_engine_opengles_tests
1540+
recipe: flutter/flutter_drone
1541+
bringup: true
1542+
timeout: 60
1543+
properties:
1544+
shard: android_engine_opengles_tests
1545+
tags: >
1546+
["framework", "hostonly", "shard", "linux"]
1547+
dependencies: >-
1548+
[
1549+
{"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}
1550+
]
1551+
15261552
- name: Linux_android_emu flutter_driver_android_test
15271553
recipe: flutter/flutter_drone
15281554
bringup: true

TESTOWNERS

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,12 +323,14 @@
323323
# https://github.com/flutter/flutter/issues/82068
324324
#
325325
# analyze @Piinks @flutter/framework
326+
# android_engine_vulkan_tests @matanlurey @jonahwilliams
327+
# android_engine_opengles_tests @matanlurey @jonahwilliams
326328
# build_tests @andrewkolos @flutter/tool
327329
# ci_yaml flutter roller @keyonghan @flutter/infra
328330
# coverage @goderbauer @flutter/infra
329331
# customer_testing @Piinks @flutter/framework
330332
# docs @Piinks @flutter/framework
331-
# flutter_driver_android_test @matanlurey @johnmccutchan
333+
# flutter_driver_android_test @matanlurey @jonahwilliams
332334
# flutter_packaging @christopherfujino @flutter/infra
333335
# flutter_plugins @stuartmorgan @flutter/plugin
334336
# framework_tests @Piinks @flutter/framework

dev/bots/suite_runners/run_android_engine_tests.dart

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,35 +18,42 @@ import '../utils.dart';
1818
///
1919
/// ```sh
2020
/// # Generate a baseline of local golden files.
21-
/// SHARD=android_engine_tests UPDATE_GOLDENS=1 bin/cache/dart-sdk/bin/dart dev/bots/test.dart
21+
/// SHARD=android_engine_vulkan_tests UPDATE_GOLDENS=1 bin/cache/dart-sdk/bin/dart dev/bots/test.dart
2222
/// ```
2323
///
2424
/// 4. Then, re-run the command against the baseline images:
2525
///
2626
/// ```sh
27-
/// SHARD=android_engine_tests bin/cache/dart-sdk/bin/dart dev/bots/test.dart
27+
/// SHARD=android_engine_vulkan_tests bin/cache/dart-sdk/bin/dart dev/bots/test.dart
2828
/// ```
2929
///
3030
/// If you are trying to debug a commit, you will want to run step (3) first,
3131
/// then apply the commit (or flag), and then run step (4). If you are trying
3232
/// to determine flakiness in the *same* state, or want better debugging, see
3333
/// `dev/integration_tests/android_engine_test/README.md`.
34-
Future<void> runAndroidEngineTests() async {
34+
Future<void> runAndroidEngineTests({required ImpellerBackend impellerBackend}) async {
3535
print('Running Flutter Driver Android tests...');
3636

3737
final String androidEngineTestPath = path.join('dev', 'integration_tests', 'android_engine_test');
3838
final List<FileSystemEntity> mains = Glob('$androidEngineTestPath/lib/**_main.dart').listSync();
3939
for (final FileSystemEntity file in mains) {
40-
await runCommand('flutter', <String>[
41-
'drive',
42-
path.relative(file.path, from: androidEngineTestPath),
43-
// There are no reason to enable development flags for this test.
44-
// Disable them to work around flakiness issues, and in general just
45-
// make less things start up unnecessarily.
46-
'--no-dds',
47-
'--no-enable-dart-profiling',
48-
'--test-arguments=test',
49-
'--test-arguments=--reporter=expanded',
50-
], workingDirectory: androidEngineTestPath);
40+
await runCommand(
41+
'flutter',
42+
<String>[
43+
'drive',
44+
path.relative(file.path, from: androidEngineTestPath),
45+
// There are no reason to enable development flags for this test.
46+
// Disable them to work around flakiness issues, and in general just
47+
// make less things start up unnecessarily.
48+
'--no-dds',
49+
'--no-enable-dart-profiling',
50+
'--test-arguments=test',
51+
'--test-arguments=--reporter=expanded',
52+
],
53+
workingDirectory: androidEngineTestPath,
54+
environment: <String, String>{'ANDROID_ENGINE_TEST_GOLDEN_VARIANT': impellerBackend.name},
55+
);
5156
}
5257
}
58+
59+
enum ImpellerBackend { vulkan, opengles }

dev/bots/test.dart

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,13 @@ Future<void> main(List<String> args) async {
137137
'web_skwasm_tests': webTestsSuite.runWebSkwasmUnitTests,
138138
// All web integration tests
139139
'web_long_running_tests': webTestsSuite.webLongRunningTestsRunner,
140-
'android_engine_tests': runAndroidEngineTests,
140+
// TODO(matanlurey): Remove once a post-submit runs with the new shards.
141+
// (Part of https://github.com/flutter/flutter/issues/161333)
142+
'android_engine_tests': () => runAndroidEngineTests(impellerBackend: ImpellerBackend.vulkan),
143+
'android_engine_vulkan_tests':
144+
() => runAndroidEngineTests(impellerBackend: ImpellerBackend.vulkan),
145+
'android_engine_opengles_tests':
146+
() => runAndroidEngineTests(impellerBackend: ImpellerBackend.opengles),
141147
'flutter_plugins': flutterPackagesRunner,
142148
'skp_generator': skpGeneratorTestsRunner,
143149
'customer_testing': customerTestingRunner,

dev/integration_tests/android_engine_test/test_driver/_luci_skia_gold_prelude.dart

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,12 @@ import 'dart:io' as io;
66

77
/// Whether the current environment is LUCI.
88
bool get isLuci => io.Platform.environment['LUCI_CI'] == 'True';
9+
10+
/// What golden suffix this test should use for different engine configurations.
11+
String get goldenVariant {
12+
final String? variant = io.Platform.environment['ANDROID_ENGINE_TEST_GOLDEN_VARIANT'];
13+
if (variant == null) {
14+
return '';
15+
}
16+
return '.$variant';
17+
}

dev/integration_tests/android_engine_test/test_driver/external_texture/surface_producer_smiley_face_main_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ void main() async {
2929

3030
setUpAll(() async {
3131
if (isLuci) {
32-
await enableSkiaGoldComparator(namePrefix: 'android_engine_test');
32+
await enableSkiaGoldComparator(namePrefix: 'android_engine_test$goldenVariant');
3333
}
3434
flutterDriver = await FlutterDriver.connect();
3535
nativeDriver = await AndroidNativeDriver.connect(flutterDriver);

dev/integration_tests/android_engine_test/test_driver/external_texture/surface_texture_smiley_face_main_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ void main() async {
2828

2929
setUpAll(() async {
3030
if (isLuci) {
31-
await enableSkiaGoldComparator(namePrefix: 'android_engine_test');
31+
await enableSkiaGoldComparator(namePrefix: 'android_engine_test$goldenVariant');
3232
}
3333
flutterDriver = await FlutterDriver.connect();
3434
nativeDriver = await AndroidNativeDriver.connect(flutterDriver);

dev/integration_tests/android_engine_test/test_driver/flutter_rendered_blue_rectangle_main_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ void main() async {
2828

2929
setUpAll(() async {
3030
if (isLuci) {
31-
await enableSkiaGoldComparator(namePrefix: 'android_engine_test');
31+
await enableSkiaGoldComparator(namePrefix: 'android_engine_test$goldenVariant');
3232
}
3333
flutterDriver = await FlutterDriver.connect();
3434
nativeDriver = await AndroidNativeDriver.connect(flutterDriver);

dev/integration_tests/android_engine_test/test_driver/platform_view/hybrid_composition_platform_view_main_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ void main() async {
3030

3131
setUpAll(() async {
3232
if (isLuci) {
33-
await enableSkiaGoldComparator(namePrefix: 'android_engine_test');
33+
await enableSkiaGoldComparator(namePrefix: 'android_engine_test$goldenVariant');
3434
}
3535
flutterDriver = await FlutterDriver.connect();
3636
nativeDriver = await AndroidNativeDriver.connect(flutterDriver);

dev/integration_tests/android_engine_test/test_driver/platform_view/texture_layer_hybrid_composition_platform_view_main_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ void main() async {
3030

3131
setUpAll(() async {
3232
if (isLuci) {
33-
await enableSkiaGoldComparator(namePrefix: 'android_engine_test');
33+
await enableSkiaGoldComparator(namePrefix: 'android_engine_test$goldenVariant');
3434
}
3535
flutterDriver = await FlutterDriver.connect();
3636
nativeDriver = await AndroidNativeDriver.connect(flutterDriver);

0 commit comments

Comments
 (0)