From e22f99743b4f0bea4a9b8e7703ce5ffbfda37a04 Mon Sep 17 00:00:00 2001 From: Zachary Anderson Date: Thu, 12 Jul 2018 14:18:29 -0700 Subject: [PATCH] Revert "Use runTests in fuchsia tester. (#19178)" (#19321) This reverts commit 032f8cdb8b563bdc200acdce068945a834bf2271. The test runner hangs on exit after all tests pass when trying to roll this into Fuchsia. --- .../flutter_tools/bin/fuchsia_tester.dart | 54 +++++-------------- 1 file changed, 12 insertions(+), 42 deletions(-) diff --git a/packages/flutter_tools/bin/fuchsia_tester.dart b/packages/flutter_tools/bin/fuchsia_tester.dart index 68b86899194..39060458954 100644 --- a/packages/flutter_tools/bin/fuchsia_tester.dart +++ b/packages/flutter_tools/bin/fuchsia_tester.dart @@ -11,12 +11,12 @@ import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/context_runner.dart'; import 'package:flutter_tools/src/dart/package_map.dart'; -import 'package:flutter_tools/src/artifacts.dart'; import 'package:flutter_tools/src/disabled_usage.dart'; import 'package:flutter_tools/src/globals.dart'; -import 'package:flutter_tools/src/test/coverage_collector.dart'; -import 'package:flutter_tools/src/test/runner.dart'; +import 'package:flutter_tools/src/test/flutter_platform.dart' as loader; import 'package:flutter_tools/src/usage.dart'; +import 'package:test/src/executable.dart' + as test; // ignore: implementation_imports // Note: this was largely inspired by lib/src/commands/test.dart. @@ -28,8 +28,6 @@ const List _kRequiredOptions = const [ _kOptionShell, _kOptionTestDirectory, ]; -const String _kOptionCoverage = 'coverage'; -const String _kOptionCoveragePath = 'coverage-path'; Future main(List args) { return runInContext(() => run(args), overrides: { @@ -49,20 +47,12 @@ Future run(List args) async { final ArgParser parser = new ArgParser() ..addOption(_kOptionPackages, help: 'The .packages file') ..addOption(_kOptionShell, help: 'The Flutter shell binary') - ..addOption(_kOptionTestDirectory, help: 'Directory containing the tests') - ..addFlag(_kOptionCoverage, - defaultsTo: false, - negatable: false, - help: 'Whether to collect coverage information.', - ) - ..addOption(_kOptionCoveragePath, - defaultsTo: 'coverage/lcov.info', - help: 'Where to store coverage information (if coverage is enabled).', - ); + ..addOption(_kOptionTestDirectory, help: 'Directory containing the tests'); final ArgResults argResults = parser.parse(args); if (_kRequiredOptions .any((String option) => !argResults.options.contains(option))) { - throwToolExit('Missing option! All options must be specified.'); + printError('Missing option! All options must be specified.'); + exit(1); } final Directory tempDirectory = fs.systemTempDirectory.createTempSync('fuchsia_tester'); @@ -80,36 +70,16 @@ Future run(List args) async { if (!fs.isFileSync(shellPath)) { throwToolExit('Cannot find Flutter shell at $shellPath'); } - // Put the tester shell where runTests expects it. - // TODO(tvolkert,garymm): Switch to a Fuchsia-specific Artifacts impl. - final Link testerDestLink = - fs.link(artifacts.getArtifactPath(Artifact.flutterTester)); - testerDestLink.parent.createSync(recursive: true); - testerDestLink.createSync(shellPath); + loader.installHook( + shellPath: shellPath, + ); PackageMap.globalPackagesPath = fs.path.normalize(fs.path.absolute(argResults[_kOptionPackages])); + fs.currentDirectory = testDirectory; - CoverageCollector collector; - if (argResults['coverage']) { - collector = new CoverageCollector(); - } - - exitCode = await runTests( - tests, - workDir: testDirectory, - watcher: collector, - enableObservatory: collector != null, - ); - - if (collector != null) { - // collector expects currentDirectory to be the root of the dart - // package (i.e. contains lib/ and test/ sub-dirs). - fs.currentDirectory = testDirectory.parent; - if (!await - collector.collectCoverageData(argResults[_kOptionCoveragePath])) - throwToolExit('Failed to collect coverage data'); - } + await test.main(testArgs); + exit(exitCode); } finally { tempDirectory.deleteSync(recursive: true); }