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