Skip to content

Commit 27cacca

Browse files
[devicelab] migrate new gallery benchmarks to local copy. (#143545)
This is the next step in archiving flutter/gallery - move devicelab tests to use the local copy.
1 parent cef3353 commit 27cacca

13 files changed

+52
-166
lines changed

dev/devicelab/bin/tasks/flutter_gallery_v2_chrome_run_test.dart

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ import 'dart:io';
99
import 'package:flutter_devicelab/framework/framework.dart';
1010
import 'package:flutter_devicelab/framework/task_result.dart';
1111
import 'package:flutter_devicelab/framework/utils.dart';
12-
import 'package:flutter_devicelab/versions/gallery.dart' show galleryVersion;
13-
import 'package:path/path.dart' as path;
1412

1513
Future<void> main() async {
1614
await task(const NewGalleryChromeRunTest().run);
@@ -34,14 +32,13 @@ class NewGalleryChromeRunTest {
3432

3533
/// Runs the test.
3634
Future<TaskResult> run() async {
37-
final Directory galleryParentDir =
38-
Directory.systemTemp.createTempSync('flutter_gallery_v2_chrome_run.');
39-
final Directory galleryDir =
40-
Directory(path.join(galleryParentDir.path, 'gallery'));
41-
42-
await getNewGallery(galleryVersion, galleryDir);
43-
44-
final TaskResult result = await inDirectory<TaskResult>(galleryDir, () async {
35+
final TaskResult result = await inDirectory<TaskResult>('${flutterDirectory.path}/dev/integration_tests/new_gallery/', () async {
36+
await flutter('create', options: <String>[
37+
'--platforms',
38+
'web,android,ios',
39+
'--no-overwrite',
40+
'.'
41+
]);
4542
await flutter('doctor');
4643
await flutter('packages', options: <String>['get']);
4744

@@ -105,8 +102,6 @@ class NewGalleryChromeRunTest {
105102
}
106103
});
107104

108-
rmTree(galleryParentDir);
109-
110105
return result;
111106
}
112107
}

dev/devicelab/bin/tasks/flutter_gallery_v2_web_compile_test.dart

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,10 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
import 'dart:io';
6-
75
import 'package:flutter_devicelab/framework/framework.dart';
86
import 'package:flutter_devicelab/framework/task_result.dart';
97
import 'package:flutter_devicelab/framework/utils.dart';
108
import 'package:flutter_devicelab/tasks/perf_tests.dart' show WebCompileTest;
11-
import 'package:flutter_devicelab/versions/gallery.dart' show galleryVersion;
12-
import 'package:path/path.dart' as path;
139

1410
Future<void> main() async {
1511
await task(const NewGalleryWebCompileTest().run);
@@ -24,28 +20,26 @@ class NewGalleryWebCompileTest {
2420

2521
/// Runs the test.
2622
Future<TaskResult> run() async {
27-
final Directory galleryParentDir =
28-
Directory.systemTemp.createTempSync('flutter_gallery_v2_web_compile.');
29-
final Directory galleryDir =
30-
Directory(path.join(galleryParentDir.path, 'gallery'));
31-
32-
await getNewGallery(galleryVersion, galleryDir);
33-
3423
final Map<String, Object> metrics = await inDirectory<Map<String, int>>(
35-
galleryDir,
24+
'${flutterDirectory.path}/dev/integration_tests/new_gallery/',
3625
() async {
3726
await flutter('doctor');
3827

28+
await flutter('create', options: <String>[
29+
'--platforms',
30+
'web,android,ios',
31+
'--no-overwrite',
32+
'.'
33+
]);
34+
3935
return WebCompileTest.runSingleBuildTest(
40-
directory: galleryDir.path,
36+
directory: '${flutterDirectory.path}/dev/integration_tests/new_gallery/',
4137
metric: metricKeyPrefix,
4238
measureBuildTime: true,
4339
);
4440
},
4541
);
4642

47-
rmTree(galleryParentDir);
48-
4943
return TaskResult.success(metrics, benchmarkScoreKeys: metrics.keys.toList());
5044
}
5145
}

dev/devicelab/bin/tasks/new_gallery__crane_perf.dart

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,17 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
import 'dart:io';
6-
75
import 'package:flutter_devicelab/framework/devices.dart';
86
import 'package:flutter_devicelab/framework/framework.dart';
9-
import 'package:flutter_devicelab/framework/utils.dart';
107
import 'package:flutter_devicelab/tasks/new_gallery.dart';
11-
import 'package:path/path.dart' as path;
128

139
Future<void> main() async {
1410
deviceOperatingSystem = DeviceOperatingSystem.android;
1511

16-
final Directory galleryParentDir =
17-
Directory.systemTemp.createTempSync('flutter_new_gallery_test.');
18-
final Directory galleryDir =
19-
Directory(path.join(galleryParentDir.path, 'gallery'));
20-
21-
try {
22-
await task(
23-
NewGalleryPerfTest(
24-
galleryDir,
25-
timelineFileName: 'transitions-crane',
26-
dartDefine: 'onlyCrane=true',
27-
).run,
28-
);
29-
} finally {
30-
rmTree(galleryParentDir);
31-
}
12+
await task(
13+
NewGalleryPerfTest(
14+
timelineFileName: 'transitions-crane',
15+
dartDefine: 'onlyCrane=true',
16+
).run,
17+
);
3218
}

dev/devicelab/bin/tasks/new_gallery__transition_perf.dart

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,18 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
import 'dart:io';
6-
75
import 'package:flutter_devicelab/framework/devices.dart';
86
import 'package:flutter_devicelab/framework/framework.dart';
9-
import 'package:flutter_devicelab/framework/utils.dart';
107
import 'package:flutter_devicelab/tasks/new_gallery.dart';
11-
import 'package:path/path.dart' as path;
128

139
Future<void> main() async {
1410
deviceOperatingSystem = DeviceOperatingSystem.android;
1511

16-
final Directory galleryParentDir = Directory.systemTemp.createTempSync('flutter_new_gallery_test.');
17-
final Directory galleryDir = Directory(path.join(galleryParentDir.path, 'gallery'));
18-
19-
try {
20-
await task(
21-
NewGalleryPerfTest(
22-
galleryDir,
23-
// time out after 20 minutes allowing the tool to take a screenshot to debug
24-
// https://github.com/flutter/flutter/issues/114025.
25-
timeoutSeconds: 20 * 60,
26-
).run,
27-
);
28-
} finally {
29-
rmTree(galleryParentDir);
30-
}
12+
await task(
13+
NewGalleryPerfTest(
14+
// time out after 20 minutes allowing the tool to take a screenshot to debug
15+
// https://github.com/flutter/flutter/issues/114025.
16+
timeoutSeconds: 20 * 60,
17+
).run,
18+
);
3119
}

dev/devicelab/bin/tasks/new_gallery_impeller__transition_perf.dart

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,12 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
import 'dart:io';
6-
75
import 'package:flutter_devicelab/framework/devices.dart';
86
import 'package:flutter_devicelab/framework/framework.dart';
9-
import 'package:flutter_devicelab/framework/utils.dart';
107
import 'package:flutter_devicelab/tasks/new_gallery.dart';
11-
import 'package:path/path.dart' as path;
128

139
Future<void> main() async {
1410
deviceOperatingSystem = DeviceOperatingSystem.android;
1511

16-
final Directory galleryParentDir = Directory.systemTemp.createTempSync('flutter_new_gallery_test.');
17-
final Directory galleryDir = Directory(path.join(galleryParentDir.path, 'gallery'));
18-
19-
try {
20-
await task(NewGalleryPerfTest(galleryDir, enableImpeller: true).run);
21-
} finally {
22-
rmTree(galleryParentDir);
23-
}
12+
await task(NewGalleryPerfTest(enableImpeller: true).run);
2413
}

dev/devicelab/bin/tasks/new_gallery_impeller_old_zoom__transition_perf.dart

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,12 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
import 'dart:io';
6-
75
import 'package:flutter_devicelab/framework/devices.dart';
86
import 'package:flutter_devicelab/framework/framework.dart';
9-
import 'package:flutter_devicelab/framework/utils.dart';
107
import 'package:flutter_devicelab/tasks/new_gallery.dart';
11-
import 'package:path/path.dart' as path;
128

139
Future<void> main() async {
1410
deviceOperatingSystem = DeviceOperatingSystem.android;
1511

16-
final Directory galleryParentDir = Directory.systemTemp.createTempSync('flutter_new_gallery_test.');
17-
final Directory galleryDir = Directory(path.join(galleryParentDir.path, 'gallery'));
18-
19-
try {
20-
await task(NewGalleryPerfTest(galleryDir, enableImpeller: true, dartDefine: 'flutter.benchmarks.force_disable_snapshot=true').run);
21-
} finally {
22-
rmTree(galleryParentDir);
23-
}
12+
await task(NewGalleryPerfTest(enableImpeller: true, dartDefine: 'flutter.benchmarks.force_disable_snapshot=true').run);
2413
}

dev/devicelab/bin/tasks/new_gallery_ios__transition_perf.dart

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,12 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
import 'dart:io';
6-
75
import 'package:flutter_devicelab/framework/devices.dart';
86
import 'package:flutter_devicelab/framework/framework.dart';
9-
import 'package:flutter_devicelab/framework/utils.dart';
107
import 'package:flutter_devicelab/tasks/new_gallery.dart';
11-
import 'package:path/path.dart' as path;
128

139
Future<void> main() async {
1410
deviceOperatingSystem = DeviceOperatingSystem.ios;
1511

16-
final Directory galleryParentDir = Directory.systemTemp.createTempSync('flutter_new_gallery_test.');
17-
final Directory galleryDir = Directory(path.join(galleryParentDir.path, 'gallery'));
18-
19-
try {
20-
await task(NewGalleryPerfTest(galleryDir).run);
21-
} finally {
22-
rmTree(galleryParentDir);
23-
}
12+
await task(NewGalleryPerfTest().run);
2413
}

dev/devicelab/bin/tasks/new_gallery_opengles_impeller__transition_perf.dart

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,12 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
import 'dart:io';
6-
75
import 'package:flutter_devicelab/framework/devices.dart';
86
import 'package:flutter_devicelab/framework/framework.dart';
9-
import 'package:flutter_devicelab/framework/utils.dart';
107
import 'package:flutter_devicelab/tasks/new_gallery.dart';
11-
import 'package:path/path.dart' as path;
128

139
Future<void> main() async {
1410
deviceOperatingSystem = DeviceOperatingSystem.android;
1511

16-
final Directory galleryParentDir = Directory.systemTemp.createTempSync('flutter_new_gallery_test.');
17-
final Directory galleryDir = Directory(path.join(galleryParentDir.path, 'gallery'));
18-
19-
try {
20-
await task(NewGalleryPerfTest(galleryDir, enableImpeller: true, forceOpenGLES: true).run);
21-
} finally {
22-
rmTree(galleryParentDir);
23-
}
12+
await task(NewGalleryPerfTest(enableImpeller: true, forceOpenGLES: true).run);
2413
}

dev/devicelab/bin/tasks/new_gallery_skia_ios__transition_perf.dart

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,12 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
import 'dart:io';
6-
75
import 'package:flutter_devicelab/framework/devices.dart';
86
import 'package:flutter_devicelab/framework/framework.dart';
9-
import 'package:flutter_devicelab/framework/utils.dart';
107
import 'package:flutter_devicelab/tasks/new_gallery.dart';
11-
import 'package:path/path.dart' as path;
128

139
Future<void> main() async {
1410
deviceOperatingSystem = DeviceOperatingSystem.ios;
1511

16-
final Directory galleryParentDir = Directory.systemTemp.createTempSync('flutter_new_gallery_test.');
17-
final Directory galleryDir = Directory(path.join(galleryParentDir.path, 'gallery'));
18-
19-
try {
20-
await task(NewGalleryPerfTest(galleryDir, enableImpeller: false).run);
21-
} finally {
22-
rmTree(galleryParentDir);
23-
}
12+
await task(NewGalleryPerfTest(enableImpeller: false).run);
2413
}

dev/devicelab/lib/framework/utils.dart

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -706,22 +706,6 @@ String jsonEncode(dynamic data) {
706706
return '$jsonValue\n';
707707
}
708708

709-
Future<void> getNewGallery(String revision, Directory galleryDir) async {
710-
section('Get New Flutter Gallery!');
711-
712-
if (exists(galleryDir)) {
713-
galleryDir.deleteSync(recursive: true);
714-
}
715-
716-
await inDirectory<void>(galleryDir.parent, () async {
717-
await exec('git', <String>['clone', 'https://github.com/flutter/gallery.git']);
718-
});
719-
720-
await inDirectory<void>(galleryDir, () async {
721-
await exec('git', <String>['checkout', revision]);
722-
});
723-
}
724-
725709
/// Splits [from] into lines and selects those that contain [pattern].
726710
Iterable<String> grep(Pattern pattern, {required String from}) {
727711
return from.split('\n').where((String line) {

dev/devicelab/lib/tasks/new_gallery.dart

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,21 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
import 'dart:io';
6-
7-
import '../framework/task_result.dart';
85
import '../framework/utils.dart';
9-
import '../versions/gallery.dart' show galleryVersion;
106
import 'perf_tests.dart';
117

128
class NewGalleryPerfTest extends PerfTest {
13-
NewGalleryPerfTest(
14-
this.galleryDir, {
9+
NewGalleryPerfTest({
1510
String timelineFileName = 'transitions',
1611
String dartDefine = '',
1712
super.enableImpeller,
1813
super.timeoutSeconds,
1914
super.forceOpenGLES,
2015
}) : super(
21-
galleryDir.path,
16+
'${flutterDirectory.path}/dev/integration_tests/new_gallery',
2217
'test_driver/transitions_perf.dart',
2318
timelineFileName,
2419
dartDefine: dartDefine,
20+
createPlatforms: <String>['android', 'ios', 'web']
2521
);
26-
27-
@override
28-
Future<TaskResult> run() async {
29-
// Manually roll the new gallery version for now. If the new gallery repo
30-
// turns out to be updated frequently in the future, we can set up an auto
31-
// roller to update this version.
32-
await getNewGallery(galleryVersion, galleryDir);
33-
return super.run();
34-
}
35-
36-
final Directory galleryDir;
3722
}

dev/devicelab/lib/tasks/perf_tests.dart

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1185,6 +1185,7 @@ class PerfTest {
11851185
this.enableImpeller,
11861186
this.forceOpenGLES,
11871187
this.disablePartialRepaint = false,
1188+
this.createPlatforms = const <String>[],
11881189
}): _resultFilename = resultFilename;
11891190

11901191
const PerfTest.e2e(
@@ -1204,6 +1205,7 @@ class PerfTest {
12041205
this.enableImpeller,
12051206
this.forceOpenGLES,
12061207
this.disablePartialRepaint = false,
1208+
this.createPlatforms = const <String>[],
12071209
}) : saveTraceFile = false, timelineFileName = null, _resultFilename = resultFilename;
12081210

12091211
/// The directory where the app under test is defined.
@@ -1274,6 +1276,10 @@ class PerfTest {
12741276
/// Additional flags for `--dart-define` to control the test
12751277
final String dartDefine;
12761278

1279+
/// Additional platforms to create with `flutter create` before running
1280+
/// the test.
1281+
final List<String> createPlatforms;
1282+
12771283
Future<TaskResult> run() {
12781284
return internalRun();
12791285
}
@@ -1295,6 +1301,15 @@ class PerfTest {
12951301
final String? localEngineHost = localEngineHostFromEnv;
12961302
final String? localEngineSrcPath = localEngineSrcPathFromEnv;
12971303

1304+
if (createPlatforms.isNotEmpty) {
1305+
await flutter('create', options: <String>[
1306+
'--platforms',
1307+
createPlatforms.join(','),
1308+
'--no-overwrite',
1309+
'.'
1310+
]);
1311+
}
1312+
12981313
bool changedPlist = false;
12991314
bool changedManifest = false;
13001315

0 commit comments

Comments
 (0)