| // 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'], | |
| ); | |
| }); | |
| } |