Chromium Code Reviews| Index: tools/testing/dart/main.dart |
| diff --git a/tools/testing/dart/main.dart b/tools/testing/dart/main.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..e02e5d78571b8145d2a3ed30ba223471c49d2db6 |
| --- /dev/null |
| +++ b/tools/testing/dart/main.dart |
| @@ -0,0 +1,50 @@ |
| +// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| +// for details. All rights reserved. Use of this source code is governed by a |
| +// BSD-style license that can be found in the LICENSE file. |
| + |
| +/// This file is the entrypoint of the Dart repository's custom test system. |
| +/// It is used to test: |
| +/// |
| +/// 1. The Dart VM |
| +/// 2. The dart2js compiler |
| +/// 3. The static analyzer |
| +/// 4. The Dart core library |
| +/// 5. Other standard dart libraries (DOM bindings, UI libraries, |
| +/// IO libraries etc.) |
| +/// |
| +/// This script is normally invoked by test.py. (test.py finds the Dart VM and |
| +/// passes along all command line arguments to this script.) |
| +/// |
| +/// The command line args of this script are documented in "test_options.dart". |
| +/// They are printed when this script is run with "--help". |
| +/// |
| +/// The default test directory layout is documented in "test_suite.dart", above |
| +/// `factory StandardTestSuite.forDirectory`. |
| +import "dart:io"; |
| + |
| +import "test_configurations.dart"; |
| +import "test_options.dart"; |
| +import "test_progress.dart"; |
| +import "test_suite.dart"; |
| + |
| +/// Runs all of the tests specified by the given command line [arguments]. |
| +void main(List<String> arguments) { |
| + // This script is in "<repo>/tools/testing/dart". |
| + TestUtils.setDartDirUri(Platform.script.resolve('../../..')); |
| + |
| + // Clean up any stale temp directories from previous runs. |
| + if (Platform.environment['DART_TESTING_DELETE_TEMPORARY_DIRECTORIES'] == |
| + '1') { |
| + LeftOverTempDirPrinter.deleteAll(); |
|
Bill Hesse
2017/05/02 14:33:08
I see that this has become a sync call, so OK.
Bob Nystrom
2017/05/02 23:48:15
Yup. I didn't see much benefit to making it async.
|
| + } |
| + |
| + // Parse the command line arguments to a configuration. |
| + var optionsParser = new TestOptionsParser(); |
| + var configurations = optionsParser.parse(arguments); |
| + if (configurations == null || configurations.isEmpty) return; |
| + |
| + // Run all of the configured tests. |
| + // TODO(26372): Ensure that all tasks complete and return a future from this |
| + // function. |
| + testConfigurations(configurations); |
| +} |