Chromium Code Reviews| Index: tests/standalone/io/test_runner_test.dart |
| diff --git a/tests/standalone/io/test_runner_test.dart b/tests/standalone/io/test_runner_test.dart |
| index d7099e67320a34de8110d4a22a16f8a044016f3d..f3670775c586c285c9298e8502e8f11172308203 100644 |
| --- a/tests/standalone/io/test_runner_test.dart |
| +++ b/tests/standalone/io/test_runner_test.dart |
| @@ -35,30 +35,21 @@ class TestController { |
| } |
| } |
| - |
| TestCase MakeTestCase(String testName, List<String> expectations) { |
| - String test_path = "tests/standalone/${testName}.dart"; |
| - // Working directory may be dart/runtime rather than dart. |
| - if (!new File(test_path).existsSync()) { |
| - test_path = "../tests/standalone/${testName}.dart"; |
| - } |
| - |
| var configuration = new TestOptionsParser().parse(['--timeout', '2'])[0]; |
| return new TestCase(testName, |
| [new Command(new Options().executable, |
| - <String>["--ignore-unrecognized-flags", |
| - "--enable_type_checks", |
| - test_path])], |
| + <String>[new Options().script, |
| + testName])], |
| configuration, |
| TestController.processCompletedTest, |
| new Set<String>.from(expectations)); |
| } |
| - |
| -void main() { |
| - new RunningProcess(MakeTestCase("pass_test", [PASS])).start(); |
| - new RunningProcess(MakeTestCase("fail_test", [FAIL])).start(); |
| - new RunningProcess(MakeTestCase("timeout_test", [TIMEOUT])).start(); |
| +void testTestRunner() { |
| + new RunningProcess(MakeTestCase("pass", [PASS])).start(); |
| + new RunningProcess(MakeTestCase("fail", [FAIL])).start(); |
| + new RunningProcess(MakeTestCase("timeout", [TIMEOUT])).start(); |
| // The crash test sometimes times out. Run it with a large timeout to help |
| // diagnose the delay. |
| @@ -72,6 +63,32 @@ void main() { |
| TestController.processCompletedTest, |
| new Set<String>.from([CRASH]))).start(); |
| Expect.equals(4, TestController.numTests); |
| - // Throw must be from body of start() function for this test to work. |
| + // Test that the test runner throws an exception if a test with |
| + // expectation SKIP is run. Throw must be from the synchronous part |
| + // of the RunninProcess starter, for the exception to be caught here. |
| Expect.throws(new RunningProcess(MakeTestCase("pass_test", [SKIP])).start); |
|
Bill Hesse
2012/06/04 12:35:07
Change "pass_test" to "pass". Not really needed,
Bill Hesse
2012/06/06 08:06:34
Done.
|
| } |
| + |
| +void main() { |
| + // Run the test_runner_test if there are no command-line options. |
| + // Otherwise, run one of the component tests that always pass, |
| + // fail, or timeout. |
| + var arguments = new Options().arguments; |
| + if (arguments.isEmpty()) { |
| + testTestRunner(); |
| + } else { |
| + switch (arguments[0]) { |
| + case 'pass': |
| + return; |
| + case 'fail': |
| + Expect.fail("This test always fails, to test the test scripts."); |
| + break; |
| + case 'timeout': |
| + // Run for 10 seconds, then exit. This tests a 2 second timeout. |
| + new Timer(10 * 1000, (t){ }); |
| + break; |
| + default: |
| + throw "Unknown option ${arguments[0]} passed to test_runner_test"; |
| + } |
| + } |
| +} |