Skip to content

Commit 98f0c36

Browse files
add old gallery page transition (#106701)
1 parent b731aee commit 98f0c36

File tree

5 files changed

+82
-0
lines changed

5 files changed

+82
-0
lines changed

.ci.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1957,6 +1957,17 @@ targets:
19571957
task_name: new_gallery__crane_perf
19581958
scheduler: luci
19591959

1960+
- name: Linux_android old_gallery__transition_perf
1961+
bringup: true
1962+
recipe: devicelab/devicelab_drone
1963+
presubmit: false
1964+
timeout: 60
1965+
properties:
1966+
tags: >
1967+
["devicelab", "android", "linux"]
1968+
task_name: old_gallery__transition_perf
1969+
scheduler: luci
1970+
19601971
- name: Linux_android new_gallery__transition_perf
19611972
recipe: devicelab/devicelab_drone
19621973
presubmit: false

TESTOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
/dev/devicelab/bin/tasks/list_text_layout_impeller_perf__e2e_summary.dart @dnfield @flutter/engine
6565
/dev/devicelab/bin/tasks/multi_widget_construction_perf__e2e_summary.dart @zanderso @flutter/engine
6666
/dev/devicelab/bin/tasks/new_gallery__crane_perf.dart @zanderso @flutter/engine
67+
/dev/devicelab/bin/tasks/old_gallery__transition_perf.dart @jonahwilliams @flutter/engine
6768
/dev/devicelab/bin/tasks/picture_cache_perf__e2e_summary.dart @zanderso @flutter/engine
6869
/dev/devicelab/bin/tasks/platform_channels_benchmarks.dart @gaaclarke @flutter/engine
6970
/dev/devicelab/bin/tasks/platform_views_scroll_perf__timeline_summary.dart @zanderso @flutter/engine
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// Copyright 2014 The Flutter Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
import 'package:flutter_devicelab/framework/devices.dart';
6+
import 'package:flutter_devicelab/framework/framework.dart';
7+
import 'package:flutter_devicelab/framework/utils.dart';
8+
import 'package:flutter_devicelab/tasks/perf_tests.dart';
9+
10+
void main() async {
11+
deviceOperatingSystem = DeviceOperatingSystem.android;
12+
await task(PerfTest(
13+
'${flutterDirectory.path}/dev/integration_tests/flutter_gallery',
14+
'test_driver/page_transitions_perf.dart',
15+
'page_transition_perf',
16+
).run);
17+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// Copyright 2014 The Flutter Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
import 'package:flutter/material.dart';
6+
import 'package:flutter_driver/driver_extension.dart';
7+
import 'package:flutter_gallery/gallery/app.dart' show GalleryApp;
8+
9+
void main() {
10+
enableFlutterDriverExtension();
11+
// As in lib/main.dart: overriding https://github.com/flutter/flutter/issues/13736
12+
// for better visual effect at the cost of performance.
13+
runApp(const GalleryApp(testMode: true));
14+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
// Copyright 2014 The Flutter Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
import 'package:flutter_driver/flutter_driver.dart';
6+
import 'package:test/test.dart' hide TypeMatcher, isInstanceOf;
7+
8+
void main() {
9+
group('page transition performance test', () {
10+
late FlutterDriver driver;
11+
12+
setUpAll(() async {
13+
driver = await FlutterDriver.connect();
14+
15+
await driver.waitUntilFirstFrameRasterized();
16+
});
17+
18+
tearDownAll(() async {
19+
driver.close();
20+
});
21+
22+
test('measure', () async {
23+
final Timeline timeline = await driver.traceAction(() async {
24+
await driver.tap(find.text('Material'));
25+
26+
for (int i = 0; i < 10; i++) {
27+
await driver.tap(find.text('Banner'));
28+
await Future<void>.delayed(const Duration(milliseconds: 500));
29+
await driver.waitFor(find.byTooltip('Back'));
30+
await driver.tap(find.byTooltip('Back'));
31+
await Future<void>.delayed(const Duration(milliseconds: 500));
32+
}
33+
});
34+
35+
final TimelineSummary summary = TimelineSummary.summarize(timeline);
36+
await summary.writeTimelineToFile('page_transition_perf', pretty: true);
37+
}, timeout: Timeout.none);
38+
});
39+
}

0 commit comments

Comments
 (0)