From 921287b412e35341471e646367aae0b97f124cef Mon Sep 17 00:00:00 2001 From: Yegor Date: Mon, 19 Sep 2016 10:03:26 -0700 Subject: [PATCH] migrate hot reload benchmark to the new devicelab framework (#5878) --- .../tasks/hot_mode_dev_cycle__benchmark.dart | 32 +++++++++++++++++++ dev/devicelab/manifest.yaml | 6 ++++ 2 files changed, 38 insertions(+) create mode 100644 dev/devicelab/bin/tasks/hot_mode_dev_cycle__benchmark.dart diff --git a/dev/devicelab/bin/tasks/hot_mode_dev_cycle__benchmark.dart b/dev/devicelab/bin/tasks/hot_mode_dev_cycle__benchmark.dart new file mode 100644 index 0000000000..66dd522652 --- /dev/null +++ b/dev/devicelab/bin/tasks/hot_mode_dev_cycle__benchmark.dart @@ -0,0 +1,32 @@ +// Copyright (c) 2016 The Chromium 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:path/path.dart' as path; + +import 'package:flutter_devicelab/framework/adb.dart'; +import 'package:flutter_devicelab/framework/framework.dart'; +import 'package:flutter_devicelab/framework/utils.dart'; + +void main() { + task(() async { + Adb device = await adb(); + await device.unlock(); + Directory appDir = + dir(path.join(flutterDirectory.path, 'examples/flutter_gallery')); + File benchmarkFile = file(path.join(appDir.path, 'hot_benchmark.json')); + rm(benchmarkFile); + await inDirectory(appDir, () async { + return await flutter('run', + options: ['--hot', '-d', device.deviceId, '--benchmark'], + canFail: false); + }); + return new TaskResult.successFromFile(benchmarkFile, + benchmarkScoreKeys: [ + 'hotReloadMillisecondsToFrame', + 'hotRestartMillisecondsToFrame' + ]); + }); +} diff --git a/dev/devicelab/manifest.yaml b/dev/devicelab/manifest.yaml index 21afb54417..80afa85f01 100644 --- a/dev/devicelab/manifest.yaml +++ b/dev/devicelab/manifest.yaml @@ -103,6 +103,12 @@ tasks: stage: devicelab required_agent_capabilities: ["has-android-device"] + hot_mode_dev_cycle__benchmark: + description: > + Measures the performance of Dart VM hot patching feature. + stage: devicelab + required_agent_capabilities: ["has-android-device"] + # iOS on-device tests