OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 @TestOn("vm") | 5 @TestOn("vm") |
6 | 6 |
7 import 'dart:io'; | 7 import 'dart:io'; |
8 | 8 |
9 import 'package:path/path.dart' as p; | 9 import 'package:path/path.dart' as p; |
10 import 'package:test/src/util/exit_codes.dart' as exit_codes; | 10 import 'package:test/src/util/exit_codes.dart' as exit_codes; |
(...skipping 24 matching lines...) Expand all Loading... |
35 }); | 35 }); |
36 | 36 |
37 group("fails gracefully if", () { | 37 group("fails gracefully if", () { |
38 test("a test file fails to compile", () { | 38 test("a test file fails to compile", () { |
39 var testPath = p.join(_sandbox, "test.dart"); | 39 var testPath = p.join(_sandbox, "test.dart"); |
40 new File(testPath).writeAsStringSync("invalid Dart file"); | 40 new File(testPath).writeAsStringSync("invalid Dart file"); |
41 var result = _runUnittest(["-p", "chrome", "test.dart"]); | 41 var result = _runUnittest(["-p", "chrome", "test.dart"]); |
42 | 42 |
43 expect(result.stdout, | 43 expect(result.stdout, |
44 contains("Expected a declaration, but got 'invalid'")); | 44 contains("Expected a declaration, but got 'invalid'")); |
45 expect(result.stderr, equals( | 45 expect(result.stdout, allOf([ |
46 'Failed to load "${p.relative(testPath, from: _sandbox)}": dart2js ' | 46 contains('-1: load error'), |
47 'failed.\n')); | 47 contains( |
48 expect(result.exitCode, equals(exit_codes.data)); | 48 'Failed to load "${p.relative(testPath, from: _sandbox)}": dart2js ' |
| 49 'failed.') |
| 50 ])); |
| 51 expect(result.exitCode, equals(1)); |
49 }); | 52 }); |
50 | 53 |
51 test("a test file throws", () { | 54 test("a test file throws", () { |
52 var testPath = p.join(_sandbox, "test.dart"); | 55 var testPath = p.join(_sandbox, "test.dart"); |
53 new File(testPath).writeAsStringSync("void main() => throw 'oh no';"); | 56 new File(testPath).writeAsStringSync("void main() => throw 'oh no';"); |
54 | 57 |
55 var result = _runUnittest(["-p", "chrome", "test.dart"]); | 58 var result = _runUnittest(["-p", "chrome", "test.dart"]); |
56 expect(result.stderr, startsWith( | 59 expect(result.stdout, allOf([ |
57 'Failed to load "${p.relative(testPath, from: _sandbox)}": oh no\n')); | 60 contains('-1: load error'), |
58 expect(result.exitCode, equals(exit_codes.data)); | 61 contains( |
| 62 'Failed to load "${p.relative(testPath, from: _sandbox)}": oh no') |
| 63 ])); |
| 64 expect(result.exitCode, equals(1)); |
59 }); | 65 }); |
60 | 66 |
61 test("a test file doesn't have a main defined", () { | 67 test("a test file doesn't have a main defined", () { |
62 var testPath = p.join(_sandbox, "test.dart"); | 68 var testPath = p.join(_sandbox, "test.dart"); |
63 new File(testPath).writeAsStringSync("void foo() {}"); | 69 new File(testPath).writeAsStringSync("void foo() {}"); |
64 | 70 |
65 var result = _runUnittest(["-p", "chrome", "test.dart"]); | 71 var result = _runUnittest(["-p", "chrome", "test.dart"]); |
66 expect(result.stderr, startsWith( | 72 expect(result.stdout, allOf([ |
67 'Failed to load "${p.relative(testPath, from: _sandbox)}": No ' | 73 contains('-1: load error'), |
68 'top-level main() function defined.\n')); | 74 contains( |
69 expect(result.exitCode, equals(exit_codes.data)); | 75 'Failed to load "${p.relative(testPath, from: _sandbox)}": No ' |
| 76 'top-level main() function defined.') |
| 77 ])); |
| 78 expect(result.exitCode, equals(1)); |
70 }); | 79 }); |
71 | 80 |
72 test("a test file has a non-function main", () { | 81 test("a test file has a non-function main", () { |
73 var testPath = p.join(_sandbox, "test.dart"); | 82 var testPath = p.join(_sandbox, "test.dart"); |
74 new File(testPath).writeAsStringSync("int main;"); | 83 new File(testPath).writeAsStringSync("int main;"); |
75 | 84 |
76 var result = _runUnittest(["-p", "chrome", "test.dart"]); | 85 var result = _runUnittest(["-p", "chrome", "test.dart"]); |
77 expect(result.stderr, startsWith( | 86 expect(result.stdout, allOf([ |
78 'Failed to load "${p.relative(testPath, from: _sandbox)}": Top-level ' | 87 contains('-1: load error'), |
79 'main getter is not a function.\n')); | 88 contains( |
80 expect(result.exitCode, equals(exit_codes.data)); | 89 'Failed to load "${p.relative(testPath, from: _sandbox)}": ' |
| 90 'Top-level main getter is not a function.\n') |
| 91 ])); |
| 92 expect(result.exitCode, equals(1)); |
81 }); | 93 }); |
82 | 94 |
83 test("a test file has a main with arguments", () { | 95 test("a test file has a main with arguments", () { |
84 var testPath = p.join(_sandbox, "test.dart"); | 96 var testPath = p.join(_sandbox, "test.dart"); |
85 new File(testPath).writeAsStringSync("void main(arg) {}"); | 97 new File(testPath).writeAsStringSync("void main(arg) {}"); |
86 | 98 |
87 var result = _runUnittest(["-p", "chrome", "test.dart"]); | 99 var result = _runUnittest(["-p", "chrome", "test.dart"]); |
88 expect(result.stderr, startsWith( | 100 expect(result.stdout, allOf([ |
89 'Failed to load "${p.relative(testPath, from: _sandbox)}": Top-level ' | 101 contains('-1: load error'), |
90 'main() function takes arguments.\n')); | 102 contains( |
91 expect(result.exitCode, equals(exit_codes.data)); | 103 'Failed to load "${p.relative(testPath, from: _sandbox)}": ' |
| 104 'Top-level main() function takes arguments.\n') |
| 105 ])); |
| 106 expect(result.exitCode, equals(1)); |
92 }); | 107 }); |
93 | 108 |
94 // TODO(nweiz): test what happens when a test file is unreadable once issue | 109 // TODO(nweiz): test what happens when a test file is unreadable once issue |
95 // 15078 is fixed. | 110 // 15078 is fixed. |
96 }); | 111 }); |
97 | 112 |
98 group("runs successful tests", () { | 113 group("runs successful tests", () { |
99 test("on Chrome", () { | 114 test("on Chrome", () { |
100 new File(p.join(_sandbox, "test.dart")).writeAsStringSync(_success); | 115 new File(p.join(_sandbox, "test.dart")).writeAsStringSync(_success); |
101 var result = _runUnittest(["-p", "chrome", "test.dart"]); | 116 var result = _runUnittest(["-p", "chrome", "test.dart"]); |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 """); | 216 """); |
202 | 217 |
203 var result = _runUnittest(["-p", "chrome", "test.dart"]); | 218 var result = _runUnittest(["-p", "chrome", "test.dart"]); |
204 expect(result.stdout, contains("Hello,\nworld!\n")); | 219 expect(result.stdout, contains("Hello,\nworld!\n")); |
205 expect(result.exitCode, equals(0)); | 220 expect(result.exitCode, equals(0)); |
206 }); | 221 }); |
207 } | 222 } |
208 | 223 |
209 ProcessResult _runUnittest(List<String> args) => | 224 ProcessResult _runUnittest(List<String> args) => |
210 runUnittest(args, workingDirectory: _sandbox); | 225 runUnittest(args, workingDirectory: _sandbox); |
OLD | NEW |