Add start-up test for flutter_view sample (#8892)
* Add start-up test for flutter_view sample * add reportMetrics flag to startup test * rewording in manifest.yaml
This commit is contained in:
parent
e918ef5dbe
commit
18db5a2e68
14
dev/devicelab/bin/tasks/flutter_view__start_up.dart
Normal file
14
dev/devicelab/bin/tasks/flutter_view__start_up.dart
Normal file
@ -0,0 +1,14 @@
|
||||
// Copyright 2017 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:async';
|
||||
|
||||
import 'package:flutter_devicelab/tasks/perf_tests.dart';
|
||||
import 'package:flutter_devicelab/framework/adb.dart';
|
||||
import 'package:flutter_devicelab/framework/framework.dart';
|
||||
|
||||
Future<Null> main() async {
|
||||
deviceOperatingSystem = DeviceOperatingSystem.android;
|
||||
await task(createFlutterViewStartupTest());
|
||||
}
|
14
dev/devicelab/bin/tasks/flutter_view_ios__start_up.dart
Normal file
14
dev/devicelab/bin/tasks/flutter_view_ios__start_up.dart
Normal file
@ -0,0 +1,14 @@
|
||||
// Copyright 2017 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:async';
|
||||
|
||||
import 'package:flutter_devicelab/tasks/perf_tests.dart';
|
||||
import 'package:flutter_devicelab/framework/adb.dart';
|
||||
import 'package:flutter_devicelab/framework/framework.dart';
|
||||
|
||||
Future<Null> main() async {
|
||||
deviceOperatingSystem = DeviceOperatingSystem.ios;
|
||||
await task(createFlutterViewStartupTest());
|
||||
}
|
@ -75,13 +75,21 @@ TaskFunction createGalleryBackButtonMemoryTest() {
|
||||
);
|
||||
}
|
||||
|
||||
TaskFunction createFlutterViewStartupTest() {
|
||||
return new StartupTest(
|
||||
'${flutterDirectory.path}/examples/flutter_view',
|
||||
reportMetrics: false,
|
||||
);
|
||||
}
|
||||
|
||||
/// Measure application startup performance.
|
||||
class StartupTest {
|
||||
static const Duration _startupTimeout = const Duration(minutes: 5);
|
||||
|
||||
StartupTest(this.testDirectory);
|
||||
StartupTest(this.testDirectory, { this.reportMetrics: true });
|
||||
|
||||
final String testDirectory;
|
||||
final bool reportMetrics;
|
||||
|
||||
Future<TaskResult> call() async {
|
||||
return await inDirectory(testDirectory, () async {
|
||||
@ -101,6 +109,9 @@ class StartupTest {
|
||||
deviceId,
|
||||
]).timeout(_startupTimeout);
|
||||
final Map<String, dynamic> data = JSON.decode(file('$testDirectory/build/start_up_info.json').readAsStringSync());
|
||||
|
||||
if (!reportMetrics) return new TaskResult.success(data);
|
||||
|
||||
return new TaskResult.success(data, benchmarkScoreKeys: <String>[
|
||||
'timeToFirstFrameMicros',
|
||||
]);
|
||||
|
@ -144,6 +144,12 @@ tasks:
|
||||
stage: devicelab
|
||||
required_agent_capabilities: ["has-android-device"]
|
||||
|
||||
flutter_view__start_up:
|
||||
description: >
|
||||
Verifies that Flutter View can be used from an Android project.
|
||||
stage: devicelab
|
||||
required_agent_capabilities: ["has-android-device"]
|
||||
|
||||
# iOS on-device tests
|
||||
|
||||
platform_services_test_ios:
|
||||
@ -190,6 +196,12 @@ tasks:
|
||||
stage: devicelab_ios
|
||||
required_agent_capabilities: ["has-ios-device"]
|
||||
|
||||
flutter_view_ios__start_up:
|
||||
description: >
|
||||
Verifies that Flutter View can be used from an iOS project.
|
||||
stage: devicelab_ios
|
||||
required_agent_capabilities: ["has-ios-device"]
|
||||
|
||||
# Tests running on Windows host
|
||||
|
||||
flutter_gallery_win__build:
|
||||
|
@ -9,7 +9,7 @@ import android.widget.TextView;
|
||||
import io.flutter.plugin.common.FlutterMessageChannel;
|
||||
import io.flutter.plugin.common.FlutterMessageChannel.MessageHandler;
|
||||
import io.flutter.plugin.common.FlutterMessageChannel.Reply;
|
||||
import io.flutter.plugin.common.StringMessageCodec;
|
||||
import io.flutter.plugin.common.StringCodec;
|
||||
import io.flutter.view.FlutterMain;
|
||||
import io.flutter.view.FlutterView;
|
||||
import java.util.ArrayList;
|
||||
@ -58,7 +58,7 @@ public class MainActivity extends AppCompatActivity {
|
||||
flutterView.runFromBundle(FlutterMain.findAppBundlePath(getApplicationContext()), null);
|
||||
|
||||
messageChannel =
|
||||
new FlutterMessageChannel<String>(flutterView, CHANNEL, StringMessageCodec.INSTANCE);
|
||||
new FlutterMessageChannel<String>(flutterView, CHANNEL, StringCodec.INSTANCE);
|
||||
messageChannel.
|
||||
setMessageHandler(new MessageHandler<String>() {
|
||||
@Override
|
||||
|
Loading…
x
Reference in New Issue
Block a user