Index: tools/testing/dart/expectation.dart |
diff --git a/tools/testing/dart/expectation.dart b/tools/testing/dart/expectation.dart |
deleted file mode 100644 |
index 58cc0da466cd1fd736a09da18f4430d4b50a776d..0000000000000000000000000000000000000000 |
--- a/tools/testing/dart/expectation.dart |
+++ /dev/null |
@@ -1,211 +0,0 @@ |
-// 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. |
- |
-/// The possible outcomes from running a test. |
-class Expectation { |
- /// The test completed normally and did what it intended to do. |
- static final Expectation pass = new Expectation._('Pass'); |
- |
- /// The process aborted in a way that is not a potential runtime error coming |
- /// from the test itself. This is not considered a failure. It means an |
- /// error happened so fundamental that success/failure could not be |
- /// determined. Includes: |
- /// |
- /// * The Dart VM itself crashes, but not from an unhandled exception in user |
- /// code. |
- /// |
- /// * When running dart2js on top of the VM to compile some code, the VM |
- /// exits with a non-zero exit code or uncaught exception -- meaning an |
- /// internal exception in dart2js itself. |
- /// |
- /// * The browser process crashes. |
- static final Expectation crash = new Expectation._('Crash'); |
- |
- /// The test did not complete (either successfully or unsuccessfully) in the |
- /// amount of time that the test runner gave it. |
- static final Expectation timeout = new Expectation._('Timeout'); |
- |
- /// The test completed but did not produce the intended output. |
- /// |
- /// This status is rarely used directly. Instead, most of the expectations |
- /// below refine this into more specific reasons *why* it failed. |
- static final Expectation fail = new Expectation._('Fail'); |
- |
- /// The test compiled and began executing but then threw an uncaught |
- /// exception or produced the wrong output. |
- static final Expectation runtimeError = |
- new Expectation._('RuntimeError', group: fail); |
- |
- /// The test failed with an error at compile time and did not execute any |
- /// code. |
- /// |
- /// * For a VM test, means the VM exited with a "compile error" exit code 254. |
- /// * For an analyzer test, means the analyzer reported a static error. |
- /// * For a dart2js test, means dart2js reported a compile error. |
- static final Expectation compileTimeError = |
- new Expectation._('CompileTimeError', group: fail); |
- |
- /// The test itself contains a comment with `@runtime-error` in it, |
- /// indicating it should have produced a runtime error when run. But when it |
- /// was run, the test completed without error. |
- static final Expectation missingRuntimeError = |
- new Expectation._('MissingRuntimeError', group: fail); |
- |
- /// The test itself contains a comment with `@compile-error` in it, |
- /// indicating it should have produced an error when compiled. But when it |
- /// was compiled, no error was reported. |
- static final Expectation missingCompileTimeError = |
- new Expectation._('MissingCompileTimeError', group: fail); |
- |
- /// When the test is processed by analyzer, a static warning should be |
- /// reported. |
- static final Expectation staticWarning = |
- new Expectation._('StaticWarning', group: fail); |
- |
- /// The test itself contains a comment with `@static-warning` in it, |
- /// indicating analyzer should report a static warning when analyzing it, but |
- /// analysis did not produce any warnings. |
- static final Expectation missingStaticWarning = |
- new Expectation._('MissingStaticWarning', group: fail); |
- |
- /// An invocation of "pub get" exited with a non-zero exit code. |
- // TODO(rnystrom): Is this still used? If not, remove. |
- static final Expectation pubGetError = |
- new Expectation._('PubGetError', group: fail); |
- |
- /// The stdout or stderr produced by the test was not valid UTF-8 and could |
- /// not be decoded. |
- // TODO(rnystrom): The only test that uses this expectation is the one that |
- // tests that the test runner handles this expectation. Remove it? |
- static final Expectation nonUtf8Error = |
- new Expectation._('NonUtf8Output', group: fail); |
- |
- /// The VM exited with the special exit code 252. |
- static final Expectation dartkCrash = |
- new Expectation._('DartkCrash', group: crash); |
- |
- /// A timeout occurred in a test using the Kernel-based front end. |
- static final Expectation dartkTimeout = |
- new Expectation._('DartkTimeout', group: timeout); |
- |
- /// A compile error was reported on a test compiled using the Kernel-based |
- /// front end. |
- static final Expectation dartkCompileTimeError = |
- new Expectation._('DartkCompileTimeError', group: compileTimeError); |
- |
- // "meta expectations" |
- /// A marker applied to a test to indicate that the other non-pass |
- /// expectations are intentional and not a result of bugs or features that |
- /// have yet to be implemented. |
- /// |
- /// For example, a test marked "RuntimeError, Ok" means "This test is |
- /// *supposed* to fail at runtime." |
- // TODO(rnystrom): This is redundant with other mechanisms like |
- // `@runtime-error` and the markers in analyzer tests for stating where a |
- // static error should be reported. It leads to perpetually larger status |
- // files and means a reader of a test can't tell what the intended behavior |
- // actually is without knowing which status files mention it. Remove. |
- static final Expectation ok = new Expectation._('Ok', isMeta: true); |
- |
- /// A marker that indicates the test takes longer to complete than most tests. |
- /// Tells the test runner to increase the timeout when running it. |
- static final Expectation slow = new Expectation._('Slow', isMeta: true); |
- |
- /// Tells the test runner to not attempt to run the test. |
- /// |
- /// This means the test runner does not compare the test's actual results with |
- /// the expected results at all. This expectation should be avoided since it's |
- /// doesn't indicate *why* the test is being skipped and means we won't |
- /// notice if the actual behavior of the test changes. |
- static final Expectation skip = new Expectation._('Skip', isMeta: true); |
- |
- /// Tells the test runner to skip the test because it takes too long to |
- /// complete. |
- /// |
- /// Prefer this over timeout since this avoids wasting CPU resources running |
- /// a test we know won't complete. |
- static final Expectation skipSlow = |
- new Expectation._('SkipSlow', isMeta: true, group: skip); |
- |
- /// Skips this test because it is not intended to be meaningful for a certain |
- /// reason or on some configuration. |
- /// |
- /// For example, tests that use dart:io are SkipByDesign on the browser since |
- /// dart:io isn't supported there. |
- static final Expectation skipByDesign = |
- new Expectation._('SkipByDesign', isMeta: true); |
- |
- /// Can be returned by the test runner to say the result should be ignored, |
- /// and assumed to meet the expectations, due to an infrastructure failure. |
- /// |
- /// This should not appear in status files. |
- static final Expectation ignore = new Expectation._('Ignore'); |
- |
- /// Used by pkg/front_end/lib/src/fasta/testing, but not used by test.dart. |
- /// Included here so that we can parse .status files that contain it. |
- static final Expectation verificationError = |
- new Expectation._('VerificationError'); |
- |
- /// Maps case-insensitive names to expectations. |
- static Map<String, Expectation> _all = new Map.fromIterable(<Expectation>[ |
- pass, |
- crash, |
- timeout, |
- fail, |
- runtimeError, |
- compileTimeError, |
- missingRuntimeError, |
- missingCompileTimeError, |
- staticWarning, |
- missingStaticWarning, |
- pubGetError, |
- nonUtf8Error, |
- dartkCrash, |
- dartkTimeout, |
- dartkCompileTimeError, |
- ok, |
- slow, |
- skip, |
- skipSlow, |
- skipByDesign, |
- ignore, |
- verificationError, |
- ], key: (Expectation expectation) => expectation._name.toLowerCase()); |
- |
- /// Looks up the expectation with [name]. |
- static Expectation find(String name) { |
- var expectation = _all[name.toLowerCase()]; |
- if (expectation == null) { |
- throw new ArgumentError("Could not find an expectation named '$name'."); |
- } |
- |
- return expectation; |
- } |
- |
- final String _name; |
- final Expectation _group; |
- |
- /// Whether this expectation is a test outcome. If not, it's a "meta marker". |
- final bool isOutcome; |
- |
- Expectation._(this._name, {Expectation group, bool isMeta: false}) |
- : _group = group, |
- isOutcome = !isMeta; |
- |
- bool canBeOutcomeOf(Expectation expectation) { |
- var outcome = this; |
- if (outcome == ignore) return true; |
- |
- while (outcome != null) { |
- if (outcome == expectation) { |
- return true; |
- } |
- outcome = outcome._group; |
- } |
- |
- return false; |
- } |
- |
- String toString() => _name; |
-} |