blob: 71e03a62bae4790a9da7c8ff36461ef09f5f4576 [file] [log] [blame]
// Copyright 2022 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 'package:devtools_shared/devtools_test_utils.dart';
import 'test_infra/run/_in_file_args.dart';
import 'test_infra/run/_utils.dart';
import 'test_infra/run/run_test.dart';
// To run integration tests, run the following from `devtools_app/`:
// `dart run integration_test/run_tests.dart`
//
// To see a list of arguments that you can pass to this test script, please run
// the above command with the '-h' flag.
const _testDirectory = 'integration_test/test';
const _offlineIndicator = 'integration_test/test/offline';
void main(List<String> args) async {
final testRunnerArgs = DevToolsAppTestRunnerArgs(
args,
verifyValidTarget: false,
);
await runOneOrManyTests<DevToolsAppTestRunnerArgs>(
testDirectoryPath: _testDirectory,
testRunnerArgs: testRunnerArgs,
runTest: _runTest,
newArgsGenerator: (args) => DevToolsAppTestRunnerArgs(args),
testIsSupported: (testFile) =>
testRunnerArgs.testAppDevice.supportsTest(testFile.path),
debugLogging: debugTestScript,
);
}
Future<void> _runTest(
DevToolsAppTestRunnerArgs testRunnerArgs,
) async {
final testTarget = testRunnerArgs.testTarget!;
if (!testRunnerArgs.testAppDevice.supportsTest(testTarget)) {
// Skip test, since it is not supported for device.
return;
}
await runFlutterIntegrationTest(
testRunnerArgs,
TestFileArgs(testTarget, testAppDevice: testRunnerArgs.testAppDevice),
offline: testTarget.startsWith(_offlineIndicator),
);
}