diff --git a/dev/devicelab/lib/framework/utils.dart b/dev/devicelab/lib/framework/utils.dart index eba0289baf..fdb9b72116 100644 --- a/dev/devicelab/lib/framework/utils.dart +++ b/dev/devicelab/lib/framework/utils.dart @@ -454,7 +454,11 @@ Future eval( return output.toString().trimRight(); } -List _flutterCommandArgs(String command, List options) { +List _flutterCommandArgs( + String command, + List options, { + bool driveWithDds = false, +}) { // Commands support the --device-timeout flag. final Set supportedDeviceTimeoutCommands = { 'attach', @@ -478,9 +482,9 @@ List _flutterCommandArgs(String command, List options) { '5', ], - // DDS should be disabled for flutter drive in CI. + // DDS should generally be disabled for flutter drive in CI. // See https://github.com/flutter/flutter/issues/152684. - if (command == 'drive') '--no-dds', + if (command == 'drive' && !driveWithDds) '--no-dds', if (command == 'drive' && hostAgent.dumpDirectory != null) ...[ '--screenshot', @@ -505,10 +509,15 @@ List _flutterCommandArgs(String command, List options) { Future flutter(String command, { List options = const [], bool canFail = false, // as in, whether failures are ok. False means that they are fatal. + bool driveWithDds = false, // `flutter drive` tests should generally have dds disabled. + // The exception is tests that also exercise DevTools, such as + // DevToolsMemoryTest in perf_tests.dart. Map? environment, String? workingDirectory, }) async { - final List args = _flutterCommandArgs(command, options); + final List args = _flutterCommandArgs( + command, options, driveWithDds: driveWithDds, + ); final int exitCode = await exec(path.join(flutterDirectory.path, 'bin', 'flutter'), args, canFail: canFail, environment: environment, workingDirectory: workingDirectory); diff --git a/dev/devicelab/lib/tasks/perf_tests.dart b/dev/devicelab/lib/tasks/perf_tests.dart index ac46416564..6af145623c 100644 --- a/dev/devicelab/lib/tasks/perf_tests.dart +++ b/dev/devicelab/lib/tasks/perf_tests.dart @@ -2172,6 +2172,7 @@ class DevToolsMemoryTest { await flutter( 'drive', + driveWithDds: true, options: [ '-d', _device.deviceId, '--profile',