Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit cd57dc9

Browse files
authored
GLES for scenario_app tests using Impeller (#51000)
Follow up on #50977 - enables OpenGLES backend for that test harness.
1 parent ef4c205 commit cd57dc9

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

testing/scenario_app/android/app/src/androidTest/java/dev/flutter/TestRunner.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,11 @@ public void onCreate(@Nullable Bundle arguments) {
1616
String[] engineArguments = null;
1717
if ("true".equals(arguments.getString("enable-impeller"))) {
1818
// Set up the global settings object so that Impeller is enabled for all tests.
19-
engineArguments = new String[] {"--enable-impeller=true"};
19+
engineArguments =
20+
new String[] {
21+
"--enable-impeller=true",
22+
"--impeller-backend=" + arguments.getString("impeller-backend", "vulkan")
23+
};
2024
}
2125
// For consistency, just always initilaize FlutterJNI etc.
2226
FlutterInjector.instance().flutterLoader().startInitialization(getTargetContext());

testing/scenario_app/bin/run_android_tests.dart

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ Future<void> _run({
199199

200200
late Process logcatProcess;
201201
late Future<int> logcatProcessExitCode;
202-
bool seenImpeller = false;
202+
_ImpellerBackend? actualImpellerBackend;
203203

204204
final IOSink logcat = File(logcatPath).openWrite();
205205
try {
@@ -222,8 +222,16 @@ Future<void> _run({
222222
logcatOutput.listen((String line) {
223223
// Always write to the full log.
224224
logcat.writeln(line);
225-
if (enableImpeller && !seenImpeller) {
226-
seenImpeller = line.contains('Using the Impeller rendering backend');
225+
if (enableImpeller && actualImpellerBackend == null && line.contains('Using the Impeller rendering backend')) {
226+
if (line.contains('OpenGLES')) {
227+
actualImpellerBackend = _ImpellerBackend.opengles;
228+
} else if (line.contains('Vulkan')) {
229+
actualImpellerBackend = _ImpellerBackend.vulkan;
230+
} else {
231+
panic(<String>[
232+
'Impeller was enabled, but $line did not contain "OpenGLES" or "Vulkan".',
233+
]);
234+
}
227235
}
228236

229237
// Conditionally parse and write to stderr.
@@ -375,9 +383,10 @@ Future<void> _run({
375383

376384
if (enableImpeller) {
377385
await step('Validating Impeller...', () async {
378-
if (!seenImpeller) {
386+
final _ImpellerBackend expectedImpellerBackend = impellerBackend ?? _ImpellerBackend.vulkan;
387+
if (actualImpellerBackend != expectedImpellerBackend) {
379388
panic(<String>[
380-
'--enable-impeller was specified, but Impeller was not used.',
389+
'--enable-impeller was specified and expected to find "${expectedImpellerBackend.name}", which did not match "${actualImpellerBackend?.name ?? '<impeller disabled>'}".',
381390
]);
382391
}
383392
});

0 commit comments

Comments
 (0)