Integration test for channel communication (#9621)
diff --git a/dev/devicelab/bin/tasks/platform_channel_test.dart b/dev/devicelab/bin/tasks/channels_integration_test.dart similarity index 77% copy from dev/devicelab/bin/tasks/platform_channel_test.dart copy to dev/devicelab/bin/tasks/channels_integration_test.dart index d1afc67..8b60289 100644 --- a/dev/devicelab/bin/tasks/platform_channel_test.dart +++ b/dev/devicelab/bin/tasks/channels_integration_test.dart
@@ -4,11 +4,11 @@ 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'; +import 'package:flutter_devicelab/tasks/integration_tests.dart'; Future<Null> main() async { deviceOperatingSystem = DeviceOperatingSystem.android; - await task(createPlatformServiceDriverTest()); + await task(createChannelsIntegrationTest()); }
diff --git a/dev/devicelab/bin/tasks/platform_channel_test_ios.dart b/dev/devicelab/bin/tasks/channels_integration_test_ios.dart similarity index 77% copy from dev/devicelab/bin/tasks/platform_channel_test_ios.dart copy to dev/devicelab/bin/tasks/channels_integration_test_ios.dart index 07760fb..9ac1a3a 100644 --- a/dev/devicelab/bin/tasks/platform_channel_test_ios.dart +++ b/dev/devicelab/bin/tasks/channels_integration_test_ios.dart
@@ -4,11 +4,11 @@ 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'; +import 'package:flutter_devicelab/tasks/integration_tests.dart'; Future<Null> main() async { deviceOperatingSystem = DeviceOperatingSystem.ios; - await task(createPlatformServiceDriverTest()); + await task(createChannelsIntegrationTest()); }
diff --git a/dev/devicelab/bin/tasks/platform_channel_test.dart b/dev/devicelab/bin/tasks/channels_integration_test_win.dart similarity index 77% copy from dev/devicelab/bin/tasks/platform_channel_test.dart copy to dev/devicelab/bin/tasks/channels_integration_test_win.dart index d1afc67..8b60289 100644 --- a/dev/devicelab/bin/tasks/platform_channel_test.dart +++ b/dev/devicelab/bin/tasks/channels_integration_test_win.dart
@@ -4,11 +4,11 @@ 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'; +import 'package:flutter_devicelab/tasks/integration_tests.dart'; Future<Null> main() async { deviceOperatingSystem = DeviceOperatingSystem.android; - await task(createPlatformServiceDriverTest()); + await task(createChannelsIntegrationTest()); }
diff --git a/dev/devicelab/bin/tasks/platform_channel_test.dart b/dev/devicelab/bin/tasks/platform_channel_sample_test.dart similarity index 77% rename from dev/devicelab/bin/tasks/platform_channel_test.dart rename to dev/devicelab/bin/tasks/platform_channel_sample_test.dart index d1afc67..38b10b3 100644 --- a/dev/devicelab/bin/tasks/platform_channel_test.dart +++ b/dev/devicelab/bin/tasks/platform_channel_sample_test.dart
@@ -4,11 +4,11 @@ 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'; +import 'package:flutter_devicelab/tasks/integration_tests.dart'; Future<Null> main() async { deviceOperatingSystem = DeviceOperatingSystem.android; - await task(createPlatformServiceDriverTest()); + await task(createPlatformChannelSampleTest()); }
diff --git a/dev/devicelab/bin/tasks/platform_channel_test_ios.dart b/dev/devicelab/bin/tasks/platform_channel_sample_test_ios.dart similarity index 77% rename from dev/devicelab/bin/tasks/platform_channel_test_ios.dart rename to dev/devicelab/bin/tasks/platform_channel_sample_test_ios.dart index 07760fb..9feeaa5 100644 --- a/dev/devicelab/bin/tasks/platform_channel_test_ios.dart +++ b/dev/devicelab/bin/tasks/platform_channel_sample_test_ios.dart
@@ -4,11 +4,11 @@ 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'; +import 'package:flutter_devicelab/tasks/integration_tests.dart'; Future<Null> main() async { deviceOperatingSystem = DeviceOperatingSystem.ios; - await task(createPlatformServiceDriverTest()); + await task(createPlatformChannelSampleTest()); }
diff --git a/dev/devicelab/lib/tasks/integration_tests.dart b/dev/devicelab/lib/tasks/integration_tests.dart new file mode 100644 index 0000000..004e7e5 --- /dev/null +++ b/dev/devicelab/lib/tasks/integration_tests.dart
@@ -0,0 +1,57 @@ +// Copyright (c) 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 '../framework/adb.dart'; +import '../framework/framework.dart'; +import '../framework/ios.dart'; +import '../framework/utils.dart'; + +TaskFunction createChannelsIntegrationTest() { + return new DriverTest( + '${flutterDirectory.path}/dev/integration_tests/channels', + 'lib/main.dart', + ); +} + +TaskFunction createPlatformChannelSampleTest() { + return new DriverTest( + '${flutterDirectory.path}/examples/platform_channel', + 'test_driver/button_tap.dart', + ); +} + +class DriverTest { + + DriverTest(this.testDirectory, this.testTarget); + + final String testDirectory; + final String testTarget; + + Future<TaskResult> call() { + return inDirectory(testDirectory, () async { + final Device device = await devices.workingDevice; + await device.unlock(); + final String deviceId = device.deviceId; + await flutter('packages', options: <String>['get']); + + if (deviceOperatingSystem == DeviceOperatingSystem.ios) { + await prepareProvisioningCertificates(testDirectory); + // This causes an Xcode project to be created. + await flutter('build', options: <String>['ios', '--profile']); + } + + await flutter('drive', options: <String>[ + '-v', + '-t', + testTarget, + '-d', + deviceId, + ]); + + return new TaskResult.success(null); + }); + } +}
diff --git a/dev/devicelab/lib/tasks/perf_tests.dart b/dev/devicelab/lib/tasks/perf_tests.dart index 87da30c..c59f216 100644 --- a/dev/devicelab/lib/tasks/perf_tests.dart +++ b/dev/devicelab/lib/tasks/perf_tests.dart
@@ -10,14 +10,6 @@ import '../framework/ios.dart'; import '../framework/utils.dart'; - -TaskFunction createPlatformServiceDriverTest() { - return new DriverTest( - '${flutterDirectory.path}/examples/platform_channel', - 'test_driver/button_tap.dart', - ); -} - TaskFunction createComplexLayoutScrollPerfTest() { return new PerfTest( '${flutterDirectory.path}/dev/benchmarks/complex_layout', @@ -175,40 +167,6 @@ } } - -class DriverTest { - - DriverTest(this.testDirectory, this.testTarget); - - final String testDirectory; - final String testTarget; - - Future<TaskResult> call() { - return inDirectory(testDirectory, () async { - final Device device = await devices.workingDevice; - await device.unlock(); - final String deviceId = device.deviceId; - await flutter('packages', options: <String>['get']); - - if (deviceOperatingSystem == DeviceOperatingSystem.ios) { - await prepareProvisioningCertificates(testDirectory); - // This causes an Xcode project to be created. - await flutter('build', options: <String>['ios', '--profile']); - } - - await flutter('drive', options: <String>[ - '-v', - '-t', - testTarget, - '-d', - deviceId, - ]); - - return new TaskResult.success(null); - }); - } -} - class BuildTest { BuildTest(this.testDirectory);
diff --git a/dev/devicelab/manifest.yaml b/dev/devicelab/manifest.yaml index 2aeb98d..b527fd3 100644 --- a/dev/devicelab/manifest.yaml +++ b/dev/devicelab/manifest.yaml
@@ -83,7 +83,13 @@ required_agent_capabilities: ["has-android-device"] flaky: true - platform_channel_test: + channels_integration_test: + description: > + Checks that platform channels work on Android. + stage: devicelab + required_agent_capabilities: ["has-android-device"] + + platform_channel_sample_test: description: > Runs a driver test on the Platform Channel sample app on Android. stage: devicelab @@ -154,7 +160,13 @@ # iOS on-device tests - platform_channel_test_ios: + channels_integration_test_ios: + description: > + Checks that platform channels work on iOS. + stage: devicelab_ios + required_agent_capabilities: ["has-ios-device"] + + platform_channel_sample_test_ios: description: > Runs a driver test on the Platform Channel sample app on iOS. stage: devicelab_ios @@ -207,6 +219,13 @@ # Tests running on Windows host + channels_integration_test_win: + description: > + Checks that platform channels work when app is launched from Windows. + stage: devicelab_win + required_agent_capabilities: ["windows"] + flaky: true + flutter_gallery_win__build: description: > Collects various performance metrics from AOT builds of the Flutter