complex_layout_semantics_perf.dart 1.42 KB
Newer Older
Ian Hickson's avatar
Ian Hickson committed
1
// Copyright 2014 The Flutter Authors. All rights reserved.
2 3 4 5 6
// 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/adb.dart';
import 'package:flutter_devicelab/framework/framework.dart';
7
import 'package:flutter_devicelab/framework/task_result.dart';
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
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>[
24
        '--no-android-gradle-daemon',
25 26 27 28 29 30 31 32 33 34 35
        '-v',
        '--profile',
        '--trace-startup', // Enables "endless" timeline event buffering.
        '-t',
        p.join(complexLayoutPath, 'test_driver', 'semantics_perf.dart'),
        '-d',
        deviceId,
      ]);
    });

    final String dataPath = p.join(complexLayoutPath, 'build', 'complex_layout_semantics_perf.json');
36
    return TaskResult.successFromFile(file(dataPath), benchmarkScoreKeys: <String>[
37 38 39 40
      'initialSemanticsTreeCreation',
    ]);
  });
}