Unverified Commit 9b4159c5 authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

[flutter_tools] support run -d chrome test scripts (#51658)

parent 266742e1
...@@ -590,7 +590,8 @@ Future<void> _runWebUnitTests() async { ...@@ -590,7 +590,8 @@ Future<void> _runWebUnitTests() async {
Future<void> _runWebIntegrationTests() async { Future<void> _runWebIntegrationTests() async {
await _runWebStackTraceTest('profile'); await _runWebStackTraceTest('profile');
await _runWebStackTraceTest('release'); await _runWebStackTraceTest('release');
await _runWebDebugStackTraceTest(); await _runWebDebugTest('lib/stack_trace.dart');
await _runWebDebugTest('test/test.dart');
} }
Future<void> _runWebStackTraceTest(String buildMode) async { Future<void> _runWebStackTraceTest(String buildMode) async {
...@@ -636,7 +637,7 @@ Future<void> _runWebStackTraceTest(String buildMode) async { ...@@ -636,7 +637,7 @@ Future<void> _runWebStackTraceTest(String buildMode) async {
/// Debug mode is special because `flutter build web` doesn't build in debug mode. /// Debug mode is special because `flutter build web` doesn't build in debug mode.
/// ///
/// Instead, we use `flutter run --debug` and sniff out the standard output. /// Instead, we use `flutter run --debug` and sniff out the standard output.
Future<void> _runWebDebugStackTraceTest() async { Future<void> _runWebDebugTest(String target) async {
final String testAppDirectory = path.join(flutterRoot, 'dev', 'integration_tests', 'web'); final String testAppDirectory = path.join(flutterRoot, 'dev', 'integration_tests', 'web');
final CapturedOutput output = CapturedOutput(); final CapturedOutput output = CapturedOutput();
bool success = false; bool success = false;
...@@ -648,7 +649,8 @@ Future<void> _runWebDebugStackTraceTest() async { ...@@ -648,7 +649,8 @@ Future<void> _runWebDebugStackTraceTest() async {
'-d', '-d',
'chrome', 'chrome',
'--web-run-headless', '--web-run-headless',
'lib/stack_trace.dart', '-t',
target,
], ],
output: output, output: output,
outputMode: OutputMode.capture, outputMode: OutputMode.capture,
......
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
const String message = 'a';
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
const String message = 'b';
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
const String message = 'c';
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
const String message = 'd';
// Copyright 2014 The Flutter 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:web_integration/a.dart'
if (dart.library.io) 'package:web_integration/b.dart' as message1;
import 'package:web_integration/c.dart'
if (dart.library.html) 'package:web_integration/d.dart' as message2;
void main() {
if (message1.message == 'a' && message2.message == 'd') {
print('--- TEST SUCCEEDED ---');
} else {
print('--- TEST FAILED ---');
}
}
...@@ -573,7 +573,13 @@ class _ResidentWebRunner extends ResidentWebRunner { ...@@ -573,7 +573,13 @@ class _ResidentWebRunner extends ResidentWebRunner {
.childFile('generated_plugin_registrant.dart') .childFile('generated_plugin_registrant.dart')
.absolute.path; .absolute.path;
final Uri generatedImport = packageUriMapper.map(generatedPath); final Uri generatedImport = packageUriMapper.map(generatedPath);
final String importedEntrypoint = packageUriMapper.map(main).toString() ?? 'file://$main'; String importedEntrypoint = packageUriMapper.map(main)?.toString();
// Special handling for entrypoints that are not under lib, such as test scripts.
if (importedEntrypoint == null) {
final String parent = globals.fs.file(main).parent.path;
flutterDevices.first.generator.addFileSystemRoot(parent);
importedEntrypoint = 'org-dartlang-app:///${globals.fs.path.basename(main)}';
}
final String entrypoint = <String>[ final String entrypoint = <String>[
'import "$importedEntrypoint" as entrypoint;', 'import "$importedEntrypoint" as entrypoint;',
......
...@@ -427,9 +427,8 @@ void main() { ...@@ -427,9 +427,8 @@ void main() {
Usage: () => MockFlutterUsage(), Usage: () => MockFlutterUsage(),
})); }));
test('web resident runner iss debuggable', () => testbed.run(() { test('web resident runner is debuggable', () => testbed.run(() {
expect(residentWebRunner.debuggingEnabled, true); expect(residentWebRunner.debuggingEnabled, true);
}, overrides: <Type, Generator>{
})); }));
test('Exits when initial compile fails', () => testbed.run(() async { test('Exits when initial compile fails', () => testbed.run(() async {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment