Chromium Code Reviews| Index: pkg/kernel/test/self_check_util.dart |
| diff --git a/pkg/kernel/test/self_check_util.dart b/pkg/kernel/test/self_check_util.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..f1a5d4d150910a916efcb2682b4bc14d5db70464 |
| --- /dev/null |
| +++ b/pkg/kernel/test/self_check_util.dart |
| @@ -0,0 +1,34 @@ |
| +// Copyright (c) 2016, 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. |
| + |
| +import '../bin/batch_util.dart'; |
| +import 'dart:async'; |
| + |
| +/// Wraps a main() method for a test that should be runnable as a self-checking |
| +/// unit test. |
| +/// |
| +/// These tests can be run like: |
| +/// |
| +/// tools/test.py -cdartk -rself_check |
| +/// |
| +/// The test can either be run with a single file passed on the command line |
| +/// or run in batch mode. |
| +runSelfCheck(List<String> args, runTest(String filename)) { |
| + Future<CompilerOutcome> batchMain(List<String> arguments) async { |
| + if (arguments.length != 1) { |
| + throw 'Exactly one argument expected'; |
| + } |
| + String filename = arguments[0]; |
| + if (!filename.endsWith('.dill')) { |
| + throw 'File does not have expected .dill extension: $filename'; |
| + } |
| + runTest(filename); |
|
kustermann
2016/12/06 10:39:05
Maybe document if this [runTest] can ever be async
asgerf
2016/12/06 13:42:08
Good point. I've changed it to be asynchronous.
|
| + return CompilerOutcome.Ok; |
| + } |
| + if (args.length == 1 && args[0] == '--batch') { |
| + runBatch(batchMain); |
| + } else { |
| + batchMain(args); |
| + } |
| +} |