| Index: tools/testing/dart/test_suite.dart
|
| diff --git a/tools/testing/dart/test_suite.dart b/tools/testing/dart/test_suite.dart
|
| index c95ad9474769c884a7247c645d7d18700adbd2d6..cc741897fe91378f46760f33885c3947e0848713 100644
|
| --- a/tools/testing/dart/test_suite.dart
|
| +++ b/tools/testing/dart/test_suite.dart
|
| @@ -21,7 +21,8 @@ import "drt_updater.dart";
|
| import "html_test.dart" as htmlTest;
|
| import "path.dart";
|
| import "multitest.dart";
|
| -import "status_file_parser.dart";
|
| +import "expectation.dart";
|
| +import "expectation_set.dart";
|
| import "summary_report.dart";
|
| import "test_runner.dart";
|
| import "utils.dart";
|
| @@ -118,7 +119,7 @@ class FutureGroup {
|
| * and a status file containing the expected results when these tests are run.
|
| */
|
| abstract class TestSuite {
|
| - final Map configuration;
|
| + final Map<String, dynamic> configuration;
|
| final String suiteName;
|
| // This function is set by subclasses before enqueueing starts.
|
| Function doTest;
|
| @@ -307,7 +308,7 @@ abstract class TestSuite {
|
|
|
| if (configuration['hot_reload'] || configuration['hot_reload_rollback']) {
|
| // Handle reload special cases.
|
| - if (expectations.contains(Expectation.COMPILETIME_ERROR) ||
|
| + if (expectations.contains(Expectation.compileTimeError) ||
|
| testCase.hasCompileError ||
|
| testCase.expectCompileError) {
|
| // Running a test that expects a compilation error with hot reloading
|
| @@ -329,9 +330,9 @@ abstract class TestSuite {
|
| }
|
|
|
| // Handle skipped tests
|
| - if (expectations.contains(Expectation.SKIP) ||
|
| - expectations.contains(Expectation.SKIP_BY_DESIGN) ||
|
| - expectations.contains(Expectation.SKIP_SLOW)) {
|
| + if (expectations.contains(Expectation.skip) ||
|
| + expectations.contains(Expectation.skipByDesign) ||
|
| + expectations.contains(Expectation.skipSlow)) {
|
| return;
|
| }
|
|
|
| @@ -445,8 +446,8 @@ class CCTestSuite extends TestSuite {
|
| final String dartDir;
|
| List<String> statusFilePaths;
|
|
|
| - CCTestSuite(Map configuration, String suiteName, String runnerName,
|
| - this.statusFilePaths,
|
| + CCTestSuite(Map<String, dynamic> configuration, String suiteName,
|
| + String runnerName, this.statusFilePaths,
|
| {this.testPrefix: ''})
|
| : dartDir = TestUtils.dartDir.toNativePath(),
|
| super(configuration, suiteName) {
|
| @@ -464,7 +465,7 @@ class CCTestSuite extends TestSuite {
|
| }
|
| }
|
|
|
| - void testNameHandler(TestExpectations testExpectations, String testName) {
|
| + void testNameHandler(ExpectationSet testExpectations, String testName) {
|
| // Only run the tests that match the pattern. Use the name
|
| // "suiteName/testName" for cc tests.
|
| String constructedName = '$suiteName/$testPrefix$testName';
|
| @@ -480,22 +481,26 @@ class CCTestSuite extends TestSuite {
|
| new TestCase(constructedName, [command], configuration, expectations));
|
| }
|
|
|
| - void forEachTest(Function onTest, Map testCache, [VoidFunction onDone]) {
|
| + Future<Null> forEachTest(Function onTest, Map testCache,
|
| + [VoidFunction onDone]) async {
|
| doTest = onTest;
|
| var statusFiles =
|
| statusFilePaths.map((statusFile) => "$dartDir/$statusFile").toList();
|
|
|
| - ReadTestExpectations(statusFiles, configuration)
|
| - .then((TestExpectations expectations) {
|
| - ccTestLister(hostRunnerPath).then((Iterable<String> names) {
|
| - names.forEach((testName) => testNameHandler(expectations, testName));
|
| - doTest = null;
|
| - if (onDone != null) onDone();
|
| - }).catchError((error) {
|
| - print("Fatal error occured: $error");
|
| - exit(1);
|
| - });
|
| - });
|
| + var expectations = ExpectationSet.read(statusFiles, configuration);
|
| +
|
| + try {
|
| + var names = await ccTestLister(hostRunnerPath);
|
| + for (var name in names) {
|
| + testNameHandler(expectations, name);
|
| + }
|
| +
|
| + doTest = null;
|
| + if (onDone != null) onDone();
|
| + } catch (error) {
|
| + print("Fatal error occured: $error");
|
| + exit(1);
|
| + }
|
| }
|
| }
|
|
|
| @@ -547,7 +552,7 @@ class HtmlTestInformation extends TestInformation {
|
| class StandardTestSuite extends TestSuite {
|
| final Path suiteDir;
|
| final List<String> statusFilePaths;
|
| - TestExpectations testExpectations;
|
| + ExpectationSet testExpectations;
|
| List<TestInformation> cachedTests;
|
| final Path dartDir;
|
| Predicate<String> isTestFilePredicate;
|
| @@ -555,8 +560,8 @@ class StandardTestSuite extends TestSuite {
|
| final List<String> extraVmOptions;
|
| List<Uri> _dart2JsBootstrapDependencies;
|
|
|
| - StandardTestSuite(Map configuration, String suiteName, Path suiteDirectory,
|
| - this.statusFilePaths,
|
| + StandardTestSuite(Map<String, dynamic> configuration, String suiteName,
|
| + Path suiteDirectory, this.statusFilePaths,
|
| {this.isTestFilePredicate, bool recursive: false})
|
| : dartDir = TestUtils.dartDir,
|
| listRecursively = recursive,
|
| @@ -638,7 +643,7 @@ class StandardTestSuite extends TestSuite {
|
| forEachTest(Function onTest, Map testCache, [VoidFunction onDone]) async {
|
| await updateDartium();
|
| doTest = onTest;
|
| - testExpectations = await readExpectations();
|
| + testExpectations = readExpectations();
|
|
|
| // Check if we have already found and generated the tests for this suite.
|
| if (!testCache.containsKey(suiteName)) {
|
| @@ -675,7 +680,7 @@ class StandardTestSuite extends TestSuite {
|
| /**
|
| * Reads the status files and completes with the parsed expectations.
|
| */
|
| - Future<TestExpectations> readExpectations() {
|
| + ExpectationSet readExpectations() {
|
| var statusFiles = statusFilePaths.where((String statusFilePath) {
|
| var file = new File(dartDir.append(statusFilePath).toNativePath());
|
| return file.existsSync();
|
| @@ -683,7 +688,7 @@ class StandardTestSuite extends TestSuite {
|
| return dartDir.append(statusFilePath).toNativePath();
|
| }).toList();
|
|
|
| - return ReadTestExpectations(statusFiles, configuration);
|
| + return ExpectationSet.read(statusFiles, configuration);
|
| }
|
|
|
| Future enqueueTests() {
|
|
|