| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 /// A test library for testing test libraries? We must go deeper. | 5 /// A test library for testing test libraries? We must go deeper. |
| 6 /// | 6 /// |
| 7 /// Since unit testing code tends to use a lot of global state, it can be tough | 7 /// Since unit testing code tends to use a lot of global state, it can be tough |
| 8 /// to test. This library manages it by running each test case in a child | 8 /// to test. This library manages it by running each test case in a child |
| 9 /// isolate, then reporting the results back to the parent isolate. | 9 /// isolate, then reporting the results back to the parent isolate. |
| 10 library metatest; | 10 library metatest; |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 _testToRun = message['testToRun']; | 112 _testToRun = message['testToRun']; |
| 113 _replyTo = message['replyTo']; | 113 _replyTo = message['replyTo']; |
| 114 _inChildIsolate = true; | 114 _inChildIsolate = true; |
| 115 } | 115 } |
| 116 } | 116 } |
| 117 | 117 |
| 118 /// Runs the test described by [description] in its own isolate. Returns a map | 118 /// Runs the test described by [description] in its own isolate. Returns a map |
| 119 /// describing the results of that test run. | 119 /// describing the results of that test run. |
| 120 Future<Map> _runInIsolate(String description) { | 120 Future<Map> _runInIsolate(String description) { |
| 121 var replyPort = new ReceivePort(); | 121 var replyPort = new ReceivePort(); |
| 122 return Isolate.spawnUri(Platform.script, [], { | 122 return Isolate.spawnUri(Uri.parse(Platform.script), [], { |
| 123 'testToRun': description, | 123 'testToRun': description, |
| 124 'replyTo': replyPort.sendPort | 124 'replyTo': replyPort.sendPort |
| 125 }).then((_) { | 125 }).then((_) { |
| 126 // TODO(nweiz): Remove this timeout once issue 8417 is fixed and we can | 126 // TODO(nweiz): Remove this timeout once issue 8417 is fixed and we can |
| 127 // capture top-level exceptions. | 127 // capture top-level exceptions. |
| 128 return timeout(replyPort.first, 30 * 1000, () { | 128 return timeout(replyPort.first, 30 * 1000, () { |
| 129 throw 'Timed out waiting for test to complete.'; | 129 throw 'Timed out waiting for test to complete.'; |
| 130 }); | 130 }); |
| 131 }); | 131 }); |
| 132 } | 132 } |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 "uncaughtError": uncaughtError, | 200 "uncaughtError": uncaughtError, |
| 201 "results": results.map((testCase) => { | 201 "results": results.map((testCase) => { |
| 202 "description": testCase.description, | 202 "description": testCase.description, |
| 203 "message": testCase.message, | 203 "message": testCase.message, |
| 204 "result": testCase.result, | 204 "result": testCase.result, |
| 205 "stackTrace": testCase.stackTrace | 205 "stackTrace": testCase.stackTrace |
| 206 }).toList() | 206 }).toList() |
| 207 }); | 207 }); |
| 208 } | 208 } |
| 209 } | 209 } |
| OLD | NEW |