Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(487)

Side by Side Diff: pkg/scheduled_test/test/scheduled_process_test.dart

Issue 24276010: Change package scheduled_test to throw TestFailures rather than strings. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Remove checks and comments on type of exception thrown. Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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:convert'; 8 import 'dart:convert';
9 import 'dart:io'; 9 import 'dart:io';
10 10
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 test('test 1', () { 56 test('test 1', () {
57 currentSchedule.onException.schedule(() { 57 currentSchedule.onException.schedule(() {
58 errors = currentSchedule.errors; 58 errors = currentSchedule.errors;
59 }); 59 });
60 60
61 var process = startDartProcess('exitCode = 1;'); 61 var process = startDartProcess('exitCode = 1;');
62 process.shouldExit(0); 62 process.shouldExit(0);
63 }); 63 });
64 64
65 test('test 2', () { 65 test('test 2', () {
66 expect(errors, everyElement(new isInstanceOf<ScheduleError>())); 66 expect(errors.single, new isInstanceOf<ScheduleError>());
67 expect(errors.length, equals(1));
68 expect(errors.first.error, new isInstanceOf<TestFailure>());
69 }); 67 });
70 }, passing: ['test 2']); 68 }, passing: ['test 2']);
71 69
72 expectTestsPass("a killed process doesn't care about its exit code", () { 70 expectTestsPass("a killed process doesn't care about its exit code", () {
73 test('exit code 0', () { 71 test('exit code 0', () {
74 var process = startDartProcess('exitCode = 0;'); 72 var process = startDartProcess('exitCode = 0;');
75 process.kill(); 73 process.kill();
76 }); 74 });
77 75
78 test('exit code 1', () { 76 test('exit code 1', () {
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 134
137 test('test 2', () { 135 test('test 2', () {
138 expect(errors, everyElement(new isInstanceOf<ScheduleError>())); 136 expect(errors, everyElement(new isInstanceOf<ScheduleError>()));
139 expect(errors.length, anyOf(1, 2)); 137 expect(errors.length, anyOf(1, 2));
140 expect(errors[0].error, isStateError); 138 expect(errors[0].error, isStateError);
141 expect(errors[0].error.message, equals("No elements")); 139 expect(errors[0].error.message, equals("No elements"));
142 140
143 // Whether or not this error appears depends on how quickly the "no 141 // Whether or not this error appears depends on how quickly the "no
144 // elements" error is handled. 142 // elements" error is handled.
145 if (errors.length == 2) { 143 if (errors.length == 2) {
146 expect(errors[1].error, matches(r"^Process " 144 expect(errors[1].error.toString(), matches(r"^Process "
147 r"'[^']+[\\/]dart(\.exe)? [^']+' ended earlier than scheduled with " 145 r"'[^']+[\\/]dart(\.exe)? [^']+' ended earlier than scheduled with "
148 r"exit code 0\.")); 146 r"exit code 0\."));
149 } 147 }
150 }); 148 });
151 }, passing: ['test 2']); 149 }, passing: ['test 2']);
152 150
153 expectTestsPass("a process that ends during the task immediately before it's " 151 expectTestsPass("a process that ends during the task immediately before it's "
154 "scheduled to end shouldn't cause an error", () { 152 "scheduled to end shouldn't cause an error", () {
155 test('test', () { 153 test('test', () {
156 var process = startDartProcess('stdin.toList();'); 154 var process = startDartProcess('stdin.toList();');
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 187
190 test('test 2', () { 188 test('test 2', () {
191 expect(errors, everyElement(new isInstanceOf<ScheduleError>())); 189 expect(errors, everyElement(new isInstanceOf<ScheduleError>()));
192 expect(errors.length, anyOf(1, 2)); 190 expect(errors.length, anyOf(1, 2));
193 expect(errors[0].error, isStateError); 191 expect(errors[0].error, isStateError);
194 expect(errors[0].error.message, equals("No elements")); 192 expect(errors[0].error.message, equals("No elements"));
195 193
196 // Whether or not this error appears depends on how quickly the "no 194 // Whether or not this error appears depends on how quickly the "no
197 // elements" error is handled. 195 // elements" error is handled.
198 if (errors.length == 2) { 196 if (errors.length == 2) {
199 expect(errors[1].error, matches(r"^Process " 197 expect(errors[1].error.toString(), matches(r"^Process "
200 r"'[^']+[\\/]dart(\.exe)? [^']+' ended earlier than scheduled with " 198 r"'[^']+[\\/]dart(\.exe)? [^']+' ended earlier than scheduled with "
201 r"exit code 0\.")); 199 r"exit code 0\."));
202 } 200 }
203 }); 201 });
204 }, passing: ['test 2']); 202 }, passing: ['test 2']);
205 203
206 expectTestsPass("nextErrLine returns the next line of stderr from the " 204 expectTestsPass("nextErrLine returns the next line of stderr from the "
207 "process", () { 205 "process", () {
208 test('test', () { 206 test('test', () {
209 var process = startDartProcess(r''' 207 var process = startDartProcess(r'''
(...skipping 23 matching lines...) Expand all
233 231
234 test('test 2', () { 232 test('test 2', () {
235 expect(errors, everyElement(new isInstanceOf<ScheduleError>())); 233 expect(errors, everyElement(new isInstanceOf<ScheduleError>()));
236 expect(errors.length, anyOf(1, 2)); 234 expect(errors.length, anyOf(1, 2));
237 expect(errors[0].error, isStateError); 235 expect(errors[0].error, isStateError);
238 expect(errors[0].error.message, equals("No elements")); 236 expect(errors[0].error.message, equals("No elements"));
239 237
240 // Whether or not this error appears depends on how quickly the "no 238 // Whether or not this error appears depends on how quickly the "no
241 // elements" error is handled. 239 // elements" error is handled.
242 if (errors.length == 2) { 240 if (errors.length == 2) {
243 expect(errors[1].error, matches(r"^Process " 241 expect(errors[1].error.toString(), matches(r"^Process "
244 r"'[^']+[\\/]dart(\.exe)? [^']+' ended earlier than scheduled with " 242 r"'[^']+[\\/]dart(\.exe)? [^']+' ended earlier than scheduled with "
245 r"exit code 0\.")); 243 r"exit code 0\."));
246 } 244 }
247 }); 245 });
248 }, passing: ['test 2']); 246 }, passing: ['test 2']);
249 247
250 expectTestsPass("remainingStdout returns all the stdout if it's not consumed " 248 expectTestsPass("remainingStdout returns all the stdout if it's not consumed "
251 "any other way", () { 249 "any other way", () {
252 test('test', () { 250 test('test', () {
253 var process = startDartProcess(r'print("hello\n\nworld"); print("hi");'); 251 var process = startDartProcess(r'print("hello\n\nworld"); print("hi");');
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 382
385 currentSchedule.onComplete.schedule(() { 383 currentSchedule.onComplete.schedule(() {
386 return tempDir.catchError((_) => null).then((dir) { 384 return tempDir.catchError((_) => null).then((dir) {
387 if (dir == null) return; 385 if (dir == null) return;
388 return new Directory(dir).delete(recursive: true); 386 return new Directory(dir).delete(recursive: true);
389 }); 387 });
390 }, 'clean up temp dir'); 388 }, 'clean up temp dir');
391 389
392 return new ScheduledProcess.start(dartExecutable, ['--checked', dartPath]); 390 return new ScheduledProcess.start(dartExecutable, ['--checked', dartPath]);
393 } 391 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698