// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'package:flutter_devicelab/framework/devices.dart'; import 'package:flutter_devicelab/framework/framework.dart'; import 'package:flutter_devicelab/framework/task_result.dart'; import 'package:flutter_devicelab/framework/utils.dart'; Future _runWithMode(String mode, String deviceId) async { final StringBuffer stderr = StringBuffer(); await evalFlutter( 'drive', stderr: stderr, options: [mode, '-t', 'test_driver/scroll_perf.dart', '-d', deviceId], ); return stderr.toString(); } Future run() async { cd('${flutterDirectory.path}/dev/integration_tests/flutter_gallery'); final Device device = await devices.workingDevice; await device.unlock(); final String deviceId = device.deviceId; await flutter('packages', options: ['get']); const String warningPiece = 'THIS BENCHMARK IS BEING RUN IN DEBUG MODE'; final String debugOutput = await _runWithMode('--debug', deviceId); if (!debugOutput.contains(warningPiece)) { return TaskResult.failure('Could not find the following warning message piece: $warningPiece'); } final String profileOutput = await _runWithMode('--profile', deviceId); if (profileOutput.contains(warningPiece)) { return TaskResult.failure('Unexpected warning message piece in profile mode: $warningPiece'); } return TaskResult.success(null); } Future main() async { deviceOperatingSystem = DeviceOperatingSystem.android; await task(run); }