| 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 library scheduled_process_test; | 5 library scheduled_process_test; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:io'; | 8 import 'dart:io'; |
| 9 | 9 |
| 10 import 'package:pathos/path.dart' as path; | 10 import 'package:path/path.dart' as path; |
| 11 import 'package:scheduled_test/scheduled_process.dart'; | 11 import 'package:scheduled_test/scheduled_process.dart'; |
| 12 import 'package:scheduled_test/scheduled_test.dart'; | 12 import 'package:scheduled_test/scheduled_test.dart'; |
| 13 import 'package:scheduled_test/src/mock_clock.dart' as mock_clock; | 13 import 'package:scheduled_test/src/mock_clock.dart' as mock_clock; |
| 14 | 14 |
| 15 import 'metatest.dart'; | 15 import 'metatest.dart'; |
| 16 import 'utils.dart'; | 16 import 'utils.dart'; |
| 17 | 17 |
| 18 void main() { | 18 void main() { |
| 19 setUpTimeout(); | 19 setUpTimeout(); |
| 20 | 20 |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 }); | 120 }); |
| 121 }); | 121 }); |
| 122 | 122 |
| 123 expectTestsPass("a process that ends while waiting for stdout shouldn't " | 123 expectTestsPass("a process that ends while waiting for stdout shouldn't " |
| 124 "block the test", () { | 124 "block the test", () { |
| 125 var errors; | 125 var errors; |
| 126 test('test 1', () { | 126 test('test 1', () { |
| 127 currentSchedule.onException.schedule(() { | 127 currentSchedule.onException.schedule(() { |
| 128 errors = currentSchedule.errors; | 128 errors = currentSchedule.errors; |
| 129 }); | 129 }); |
| 130 | 130 |
| 131 var process = startDartProcess(''); | 131 var process = startDartProcess(''); |
| 132 expect(process.nextLine(), completion(equals('hello'))); | 132 expect(process.nextLine(), completion(equals('hello'))); |
| 133 expect(process.nextLine(), completion(equals('world'))); | 133 expect(process.nextLine(), completion(equals('world'))); |
| 134 process.shouldExit(0); | 134 process.shouldExit(0); |
| 135 }); | 135 }); |
| 136 | 136 |
| 137 test('test 2', () { | 137 test('test 2', () { |
| 138 expect(errors, everyElement(new isInstanceOf<ScheduleError>())); | 138 expect(errors, everyElement(new isInstanceOf<ScheduleError>())); |
| 139 expect(errors.length, anyOf(1, 2)); | 139 expect(errors.length, anyOf(1, 2)); |
| 140 expect(errors[0].error, isStateError); | 140 expect(errors[0].error, isStateError); |
| 141 expect(errors[0].error.message, equals("No elements")); | 141 expect(errors[0].error.message, equals("No elements")); |
| 142 | 142 |
| 143 // Whether or not this error appears depends on how quickly the "no | 143 // Whether or not this error appears depends on how quickly the "no |
| 144 // elements" error is handled. | 144 // elements" error is handled. |
| 145 if (errors.length == 2) { | 145 if (errors.length == 2) { |
| 146 expect(errors[1].error, matches(r"^Process " | 146 expect(errors[1].error, matches(r"^Process " |
| (...skipping 26 matching lines...) Expand all Loading... |
| 173 process.shouldExit(0); | 173 process.shouldExit(0); |
| 174 }); | 174 }); |
| 175 }); | 175 }); |
| 176 | 176 |
| 177 expectTestsPass("nextLine throws an error if there's no more stdout", () { | 177 expectTestsPass("nextLine throws an error if there's no more stdout", () { |
| 178 var errors; | 178 var errors; |
| 179 test('test 1', () { | 179 test('test 1', () { |
| 180 currentSchedule.onException.schedule(() { | 180 currentSchedule.onException.schedule(() { |
| 181 errors = currentSchedule.errors; | 181 errors = currentSchedule.errors; |
| 182 }); | 182 }); |
| 183 | 183 |
| 184 var process = startDartProcess('print("hello");'); | 184 var process = startDartProcess('print("hello");'); |
| 185 expect(process.nextLine(), completion(equals('hello'))); | 185 expect(process.nextLine(), completion(equals('hello'))); |
| 186 expect(process.nextLine(), completion(equals('world'))); | 186 expect(process.nextLine(), completion(equals('world'))); |
| 187 process.shouldExit(0); | 187 process.shouldExit(0); |
| 188 }); | 188 }); |
| 189 | 189 |
| 190 test('test 2', () { | 190 test('test 2', () { |
| 191 expect(errors, everyElement(new isInstanceOf<ScheduleError>())); | 191 expect(errors, everyElement(new isInstanceOf<ScheduleError>())); |
| 192 expect(errors.length, anyOf(1, 2)); | 192 expect(errors.length, anyOf(1, 2)); |
| 193 expect(errors[0].error, isStateError); | 193 expect(errors[0].error, isStateError); |
| 194 expect(errors[0].error.message, equals("No elements")); | 194 expect(errors[0].error.message, equals("No elements")); |
| 195 | 195 |
| 196 // Whether or not this error appears depends on how quickly the "no | 196 // Whether or not this error appears depends on how quickly the "no |
| 197 // elements" error is handled. | 197 // elements" error is handled. |
| 198 if (errors.length == 2) { | 198 if (errors.length == 2) { |
| 199 expect(errors[1].error, matches(r"^Process " | 199 expect(errors[1].error, matches(r"^Process " |
| (...skipping 17 matching lines...) Expand all Loading... |
| 217 process.shouldExit(0); | 217 process.shouldExit(0); |
| 218 }); | 218 }); |
| 219 }); | 219 }); |
| 220 | 220 |
| 221 expectTestsPass("nextErrLine throws an error if there's no more stderr", () { | 221 expectTestsPass("nextErrLine throws an error if there's no more stderr", () { |
| 222 var errors; | 222 var errors; |
| 223 test('test 1', () { | 223 test('test 1', () { |
| 224 currentSchedule.onException.schedule(() { | 224 currentSchedule.onException.schedule(() { |
| 225 errors = currentSchedule.errors; | 225 errors = currentSchedule.errors; |
| 226 }); | 226 }); |
| 227 | 227 |
| 228 var process = startDartProcess(r'stderr.write("hello\n");'); | 228 var process = startDartProcess(r'stderr.write("hello\n");'); |
| 229 expect(process.nextErrLine(), completion(equals('hello'))); | 229 expect(process.nextErrLine(), completion(equals('hello'))); |
| 230 expect(process.nextErrLine(), completion(equals('world'))); | 230 expect(process.nextErrLine(), completion(equals('world'))); |
| 231 process.shouldExit(0); | 231 process.shouldExit(0); |
| 232 }); | 232 }); |
| 233 | 233 |
| 234 test('test 2', () { | 234 test('test 2', () { |
| 235 expect(errors, everyElement(new isInstanceOf<ScheduleError>())); | 235 expect(errors, everyElement(new isInstanceOf<ScheduleError>())); |
| 236 expect(errors.length, anyOf(1, 2)); | 236 expect(errors.length, anyOf(1, 2)); |
| 237 expect(errors[0].error, isStateError); | 237 expect(errors[0].error, isStateError); |
| 238 expect(errors[0].error.message, equals("No elements")); | 238 expect(errors[0].error.message, equals("No elements")); |
| 239 | 239 |
| 240 // Whether or not this error appears depends on how quickly the "no | 240 // Whether or not this error appears depends on how quickly the "no |
| 241 // elements" error is handled. | 241 // elements" error is handled. |
| 242 if (errors.length == 2) { | 242 if (errors.length == 2) { |
| 243 expect(errors[1].error, matches(r"^Process " | 243 expect(errors[1].error, matches(r"^Process " |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 383 | 383 |
| 384 currentSchedule.onComplete.schedule(() { | 384 currentSchedule.onComplete.schedule(() { |
| 385 return tempDir.catchError((_) => null).then((dir) { | 385 return tempDir.catchError((_) => null).then((dir) { |
| 386 if (dir == null) return; | 386 if (dir == null) return; |
| 387 return new Directory(dir).delete(recursive: true); | 387 return new Directory(dir).delete(recursive: true); |
| 388 }); | 388 }); |
| 389 }, 'clean up temp dir'); | 389 }, 'clean up temp dir'); |
| 390 | 390 |
| 391 return new ScheduledProcess.start(dartExecutable, ['--checked', dartPath]); | 391 return new ScheduledProcess.start(dartExecutable, ['--checked', dartPath]); |
| 392 } | 392 } |
| OLD | NEW |