From 76c0d69b14fcd78b6b49feeb00ad097b453fafde Mon Sep 17 00:00:00 2001 From: "Ming Lyu (CareF)" Date: Fri, 2 Oct 2020 17:47:03 -0400 Subject: [PATCH] migrate textfield_perf to e2e (#64503) --- .../test/textfield_perf_e2e.dart | 27 +++++++++++++++++++ .../tasks/textfield_perf__e2e_summary.dart | 14 ++++++++++ dev/devicelab/lib/tasks/perf_tests.dart | 7 +++++ dev/devicelab/manifest.yaml | 7 +++++ 4 files changed, 55 insertions(+) create mode 100644 dev/benchmarks/macrobenchmarks/test/textfield_perf_e2e.dart create mode 100644 dev/devicelab/bin/tasks/textfield_perf__e2e_summary.dart diff --git a/dev/benchmarks/macrobenchmarks/test/textfield_perf_e2e.dart b/dev/benchmarks/macrobenchmarks/test/textfield_perf_e2e.dart new file mode 100644 index 00000000000..e8e546a126d --- /dev/null +++ b/dev/benchmarks/macrobenchmarks/test/textfield_perf_e2e.dart @@ -0,0 +1,27 @@ +// 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 'package:flutter/foundation.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:macrobenchmarks/common.dart'; + +import 'util.dart'; + +void main() { + macroPerfTestE2E( + 'textfield_perf', + kTextRouteName, + // The driver version doesn't have this delay because the delay caused + // by the communication between the host and the test device is long enough + // for the driver test, but there isn't such delay in this host independent + // test. + pageDelay: const Duration(milliseconds: 50), + body: (WidgetController controller) async { + final Finder textfield = find.byKey(const ValueKey('basic-textfield')); + controller.tap(textfield); + // Caret should be cached, so repeated blinking should not require recompute. + await Future.delayed(const Duration(milliseconds: 5000)); + }, + ); +} diff --git a/dev/devicelab/bin/tasks/textfield_perf__e2e_summary.dart b/dev/devicelab/bin/tasks/textfield_perf__e2e_summary.dart new file mode 100644 index 00000000000..de6e3a40999 --- /dev/null +++ b/dev/devicelab/bin/tasks/textfield_perf__e2e_summary.dart @@ -0,0 +1,14 @@ +// 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:async'; + +import 'package:flutter_devicelab/tasks/perf_tests.dart'; +import 'package:flutter_devicelab/framework/adb.dart'; +import 'package:flutter_devicelab/framework/framework.dart'; + +Future main() async { + deviceOperatingSystem = DeviceOperatingSystem.android; + await task(createTextfieldPerfE2ETest()); +} diff --git a/dev/devicelab/lib/tasks/perf_tests.dart b/dev/devicelab/lib/tasks/perf_tests.dart index 6b4231e7284..0484327cbc9 100644 --- a/dev/devicelab/lib/tasks/perf_tests.dart +++ b/dev/devicelab/lib/tasks/perf_tests.dart @@ -281,6 +281,13 @@ TaskFunction createTextfieldPerfTest() { ).run; } +TaskFunction createTextfieldPerfE2ETest() { + return PerfTest.e2e( + '${flutterDirectory.path}/dev/benchmarks/macrobenchmarks', + 'test/textfield_perf_e2e.dart', + ).run; +} + TaskFunction createColorFilterAndFadePerfTest() { return PerfTest( '${flutterDirectory.path}/dev/benchmarks/macrobenchmarks', diff --git a/dev/devicelab/manifest.yaml b/dev/devicelab/manifest.yaml index e1a0d4fa928..882b3db812a 100644 --- a/dev/devicelab/manifest.yaml +++ b/dev/devicelab/manifest.yaml @@ -263,6 +263,13 @@ tasks: stage: devicelab required_agent_capabilities: ["mac/android"] + textfield_perf__e2e_summary: + description: > + Measures the runtime performance of textfield on Android. + stage: devicelab + required_agent_capabilities: ["linux/android"] + flaky: true + color_filter_and_fade_perf__timeline_summary: description: > Measures the runtime performance of color filter with fade on Android.