complex_layout_semantics_perf.dart 1.54 KB
Newer Older
Ian Hickson's avatar
Ian Hickson committed
1
// Copyright 2014 The Flutter Authors. All rights reserved.
2 3 4
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

5 6
import 'dart:io';

7
import 'package:flutter_devicelab/framework/devices.dart';
8
import 'package:flutter_devicelab/framework/framework.dart';
9
import 'package:flutter_devicelab/framework/task_result.dart';
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
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>[
26
        '--no-android-gradle-daemon',
27 28 29 30 31 32 33 34 35 36
        '-v',
        '--profile',
        '--trace-startup', // Enables "endless" timeline event buffering.
        '-t',
        p.join(complexLayoutPath, 'test_driver', 'semantics_perf.dart'),
        '-d',
        deviceId,
      ]);
    });

Dan Field's avatar
Dan Field committed
37 38
    final String outputPath = Platform.environment['FLUTTER_TEST_OUTPUTS_DIR'] ?? p.join(complexLayoutPath, 'build');
    final String dataPath = p.join(outputPath, 'complex_layout_semantics_perf.json');
39
    return TaskResult.successFromFile(file(dataPath), benchmarkScoreKeys: <String>[
40 41 42 43
      'initialSemanticsTreeCreation',
    ]);
  });
}