| // 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 'dart:io'; |
| |
| 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'; |
| import 'package:path/path.dart' as p; |
| |
| void main() { |
| task(() async { |
| deviceOperatingSystem = DeviceOperatingSystem.android; |
| |
| final Device device = await devices.workingDevice; |
| await device.unlock(); |
| final String deviceId = device.deviceId; |
| await flutter('packages', options: <String>['get']); |
| |
| final String complexLayoutPath = p.join(flutterDirectory.path, 'dev', 'benchmarks', 'complex_layout'); |
| |
| await inDirectory(complexLayoutPath, () async { |
| await flutter('drive', options: <String>[ |
| '--no-android-gradle-daemon', |
| '-v', |
| '--profile', |
| '--trace-startup', // Enables "endless" timeline event buffering. |
| '-t', |
| p.join(complexLayoutPath, 'test_driver', 'semantics_perf.dart'), |
| '-d', |
| deviceId, |
| ]); |
| }); |
| |
| final String outputPath = Platform.environment['FLUTTER_TEST_OUTPUTS_DIR'] ?? p.join(complexLayoutPath, 'build'); |
| final String dataPath = p.join(outputPath, 'complex_layout_semantics_perf.json'); |
| return TaskResult.successFromFile(file(dataPath), benchmarkScoreKeys: <String>[ |
| 'initialSemanticsTreeCreation', |
| ]); |
| }); |
| } |