migrate textfield_perf to e2e (#64503)
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 0000000..e8e546a
--- /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<String>('basic-textfield'));
+ controller.tap(textfield);
+ // Caret should be cached, so repeated blinking should not require recompute.
+ await Future<void>.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 0000000..de6e3a4
--- /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<void> 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 6b4231e..0484327 100644
--- a/dev/devicelab/lib/tasks/perf_tests.dart
+++ b/dev/devicelab/lib/tasks/perf_tests.dart
@@ -281,6 +281,13 @@
).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 e1a0d4f..882b3db 100644
--- a/dev/devicelab/manifest.yaml
+++ b/dev/devicelab/manifest.yaml
@@ -263,6 +263,13 @@
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.