Unverified Commit 0d378ed5 authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

[flutter_tools] add support for --enable-impeller to test device. (#140899)

This allows unit tests to use the impeller backend, which can be useful for Scubas/golden tests.
parent 0e11246b
......@@ -74,6 +74,7 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts {
usesWebRendererOption();
usesDeviceUserOption();
usesFlavorOption();
addEnableImpellerFlag(verboseHelp: verboseHelp);
argParser
..addMultiOption('name',
......@@ -436,6 +437,7 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts {
enableDds: enableDds,
nullAssertions: boolArg(FlutterOptions.kNullAssertions),
usingCISystem: usingCISystem,
enableImpeller: ImpellerStatus.fromBool(argResults!['enable-impeller'] as bool?),
);
Device? integrationTestDevice;
......
......@@ -109,8 +109,13 @@ class FlutterTesterTestDevice extends TestDevice {
if (icudtlPath != null) '--icu-data-file-path=$icudtlPath',
'--enable-checked-mode',
'--verify-entry-points',
if (debuggingOptions.enableImpeller == ImpellerStatus.enabled)
'--enable-impeller'
else
...<String>[
'--enable-software-rendering',
'--skia-deterministic-rendering',
],
if (debuggingOptions.enableDartProfiling)
'--enable-dart-profiling',
'--non-interactive',
......
......@@ -996,6 +996,23 @@ dev_dependencies:
FileSystem: () => fs,
ProcessManager: () => FakeProcessManager.any(),
});
testUsingContext('Enables Impeller', () async {
final FakeFlutterTestRunner testRunner = FakeFlutterTestRunner(0);
final TestCommand testCommand = TestCommand(testRunner: testRunner);
final CommandRunner<void> commandRunner = createTestCommandRunner(testCommand);
await commandRunner.run(const <String>[
'test',
'--no-pub',
'--enable-impeller',
]);
expect(testRunner.lastDebuggingOptionsValue.enableImpeller, ImpellerStatus.enabled);
}, overrides: <Type, Generator>{
FileSystem: () => fs,
ProcessManager: () => FakeProcessManager.any(),
});
});
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment