| 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..81a4c6676d11ca5cc1dcac60882af168ef4f3d49
|
| --- /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, Future 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';
|
| + }
|
| + await runTest(filename);
|
| + return CompilerOutcome.Ok;
|
| + }
|
| + if (args.length == 1 && args[0] == '--batch') {
|
| + runBatch(batchMain);
|
| + } else {
|
| + batchMain(args);
|
| + }
|
| +}
|
|
|