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

Side by Side Diff: tests/standalone/io/file_error_test.dart

Issue 11783009: Big merge from experimental to bleeding edge. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 11 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
« no previous file with comments | « tests/standalone/io/echo_server_test.dart ('k') | tests/standalone/io/file_fuzz_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 // Dart test program for testing error handling in file I/O. 5 // Dart test program for testing error handling in file I/O.
6 6
7 import "dart:io"; 7 import "dart:io";
8 import "dart:isolate"; 8 import "dart:isolate";
9 9
10 Directory tempDir() { 10 Directory tempDir() {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 p.close(); 44 p.close();
45 temp.deleteSync(recursive: true); 45 temp.deleteSync(recursive: true);
46 }); 46 });
47 var file = new File("${temp.path}/nonExistentFile"); 47 var file = new File("${temp.path}/nonExistentFile");
48 48
49 // Non-existing file should throw exception. 49 // Non-existing file should throw exception.
50 Expect.throws(() => file.openSync(), 50 Expect.throws(() => file.openSync(),
51 (e) => checkOpenNonExistentFileException(e)); 51 (e) => checkOpenNonExistentFileException(e));
52 52
53 var openFuture = file.open(FileMode.READ); 53 var openFuture = file.open(FileMode.READ);
54 openFuture.then((raf) => Expect.fail("Unreachable code")); 54 openFuture.then((raf) => Expect.fail("Unreachable code"))
55 openFuture.handleException((e) { 55 .catchError((e) {
56 checkOpenNonExistentFileException(e); 56 checkOpenNonExistentFileException(e.error);
57 p.toSendPort().send(null); 57 p.toSendPort().send(null);
58 return true; 58 });
59 });
60 } 59 }
61 60
62 61
63 void testDeleteNonExistent() { 62 void testDeleteNonExistent() {
64 Directory temp = tempDir(); 63 Directory temp = tempDir();
65 ReceivePort p = new ReceivePort(); 64 ReceivePort p = new ReceivePort();
66 p.receive((x, y) { 65 p.receive((x, y) {
67 p.close(); 66 p.close();
68 temp.deleteSync(recursive: true); 67 temp.deleteSync(recursive: true);
69 }); 68 });
70 var file = new File("${temp.path}/nonExistentFile"); 69 var file = new File("${temp.path}/nonExistentFile");
71 70
72 // Non-existing file should throw exception. 71 // Non-existing file should throw exception.
73 Expect.throws(() => file.deleteSync(), 72 Expect.throws(() => file.deleteSync(),
74 (e) => checkDeleteNonExistentFileException(e)); 73 (e) => checkDeleteNonExistentFileException(e));
75 74
76 var delete = file.delete(); 75 var delete = file.delete();
77 delete.then((ignore) => Expect.fail("Unreachable code")); 76 delete.then((ignore) => Expect.fail("Unreachable code"))
78 delete.handleException((e) { 77 .catchError((e) {
79 checkDeleteNonExistentFileException(e); 78 checkDeleteNonExistentFileException(e.error);
80 p.toSendPort().send(null); 79 p.toSendPort().send(null);
81 return true; 80 });
82 });
83 } 81 }
84 82
85 83
86 void testLengthNonExistent() { 84 void testLengthNonExistent() {
87 Directory temp = tempDir(); 85 Directory temp = tempDir();
88 ReceivePort p = new ReceivePort(); 86 ReceivePort p = new ReceivePort();
89 p.receive((x, y) { 87 p.receive((x, y) {
90 p.close(); 88 p.close();
91 temp.deleteSync(recursive: true); 89 temp.deleteSync(recursive: true);
92 }); 90 });
93 var file = new File("${temp.path}/nonExistentFile"); 91 var file = new File("${temp.path}/nonExistentFile");
94 92
95 // Non-existing file should throw exception. 93 // Non-existing file should throw exception.
96 Expect.throws(() => file.lengthSync(), 94 Expect.throws(() => file.lengthSync(),
97 (e) => checkLengthNonExistentFileException(e)); 95 (e) => checkLengthNonExistentFileException(e));
98 96
99 var lenFuture = file.length(); 97 var lenFuture = file.length();
100 lenFuture.then((len) => Expect.fail("Unreachable code")); 98 lenFuture.then((len) => Expect.fail("Unreachable code"))
101 lenFuture.handleException((e) { 99 .catchError((e) {
102 checkLengthNonExistentFileException(e); 100 checkLengthNonExistentFileException(e.error);
103 p.toSendPort().send(null); 101 p.toSendPort().send(null);
104 return true; 102 });
105 });
106 } 103 }
107 104
108 105
109 bool checkCreateInNonExistentDirectoryException(e) { 106 bool checkCreateInNonExistentDirectoryException(e) {
110 Expect.isTrue(e is FileIOException); 107 Expect.isTrue(e is FileIOException);
111 Expect.isTrue(e.osError != null); 108 Expect.isTrue(e.osError != null);
112 Expect.isTrue(e.toString().indexOf("Cannot create file") != -1); 109 Expect.isTrue(e.toString().indexOf("Cannot create file") != -1);
113 if (Platform.operatingSystem == "linux") { 110 if (Platform.operatingSystem == "linux") {
114 Expect.equals(2, e.osError.errorCode); 111 Expect.equals(2, e.osError.errorCode);
115 } else if (Platform.operatingSystem == "macos") { 112 } else if (Platform.operatingSystem == "macos") {
(...skipping 12 matching lines...) Expand all
128 p.close(); 125 p.close();
129 temp.deleteSync(recursive: true); 126 temp.deleteSync(recursive: true);
130 }); 127 });
131 var file = new File("${temp.path}/nonExistentDirectory/newFile"); 128 var file = new File("${temp.path}/nonExistentDirectory/newFile");
132 129
133 // Create in non-existent directory should throw exception. 130 // Create in non-existent directory should throw exception.
134 Expect.throws(() => file.createSync(), 131 Expect.throws(() => file.createSync(),
135 (e) => checkCreateInNonExistentDirectoryException(e)); 132 (e) => checkCreateInNonExistentDirectoryException(e));
136 133
137 var create = file.create(); 134 var create = file.create();
138 create.then((ignore) => Expect.fail("Unreachable code")); 135 create.then((ignore) => Expect.fail("Unreachable code"))
139 create.handleException((e) { 136 .catchError((e) {
140 checkCreateInNonExistentDirectoryException(e); 137 checkCreateInNonExistentDirectoryException(e.error);
141 p.toSendPort().send(null); 138 p.toSendPort().send(null);
142 return true;
143 }); 139 });
144 } 140 }
145 141
146 bool checkFullPathOnNonExistentDirectoryException(e) { 142 bool checkFullPathOnNonExistentDirectoryException(e) {
147 Expect.isTrue(e is FileIOException); 143 Expect.isTrue(e is FileIOException);
148 Expect.isTrue(e.osError != null); 144 Expect.isTrue(e.osError != null);
149 Expect.isTrue(e.toString().indexOf("Cannot retrieve full path") != -1); 145 Expect.isTrue(e.toString().indexOf("Cannot retrieve full path") != -1);
150 // File not not found has error code 2 on all supported platforms. 146 // File not not found has error code 2 on all supported platforms.
151 Expect.equals(2, e.osError.errorCode); 147 Expect.equals(2, e.osError.errorCode);
152 148
153 return true; 149 return true;
154 } 150 }
155 151
156 void testFullPathOnNonExistentDirectory() { 152 void testFullPathOnNonExistentDirectory() {
157 Directory temp = tempDir(); 153 Directory temp = tempDir();
158 ReceivePort p = new ReceivePort(); 154 ReceivePort p = new ReceivePort();
159 p.receive((x, y) { 155 p.receive((x, y) {
160 p.close(); 156 p.close();
161 temp.deleteSync(recursive: true); 157 temp.deleteSync(recursive: true);
162 }); 158 });
163 var file = new File("${temp.path}/nonExistentDirectory"); 159 var file = new File("${temp.path}/nonExistentDirectory");
164 160
165 // Full path non-existent directory should throw exception. 161 // Full path non-existent directory should throw exception.
166 Expect.throws(() => file.fullPathSync(), 162 Expect.throws(() => file.fullPathSync(),
167 (e) => checkFullPathOnNonExistentDirectoryException(e)); 163 (e) => checkFullPathOnNonExistentDirectoryException(e));
168 164
169 var fullPathFuture = file.fullPath(); 165 var fullPathFuture = file.fullPath();
170 fullPathFuture.then((path) => Expect.fail("Unreachable code $path")); 166 fullPathFuture.then((path) => Expect.fail("Unreachable code $path"))
171 fullPathFuture.handleException((e) { 167 .catchError((e) {
172 checkFullPathOnNonExistentDirectoryException(e); 168 checkFullPathOnNonExistentDirectoryException(e.error);
173 p.toSendPort().send(null); 169 p.toSendPort().send(null);
174 return true;
175 }); 170 });
176 } 171 }
177 172
178 bool checkDirectoryInNonExistentDirectoryException(e) { 173 bool checkDirectoryInNonExistentDirectoryException(e) {
179 Expect.isTrue(e is FileIOException); 174 Expect.isTrue(e is FileIOException);
180 Expect.isTrue(e.osError != null); 175 Expect.isTrue(e.osError != null);
181 Expect.isTrue( 176 Expect.isTrue(
182 e.toString().indexOf("Cannot retrieve directory for file") != -1); 177 e.toString().indexOf("Cannot retrieve directory for file") != -1);
183 // File not not found has error code 2 on all supported platforms. 178 // File not not found has error code 2 on all supported platforms.
184 Expect.equals(2, e.osError.errorCode); 179 Expect.equals(2, e.osError.errorCode);
185 180
186 return true; 181 return true;
187 } 182 }
188 183
189 void testDirectoryInNonExistentDirectory() { 184 void testDirectoryInNonExistentDirectory() {
190 Directory temp = tempDir(); 185 Directory temp = tempDir();
191 ReceivePort p = new ReceivePort(); 186 ReceivePort p = new ReceivePort();
192 p.receive((x, y) { 187 p.receive((x, y) {
193 p.close(); 188 p.close();
194 temp.deleteSync(recursive: true); 189 temp.deleteSync(recursive: true);
195 }); 190 });
196 var file = new File("${temp.path}/nonExistentDirectory/newFile"); 191 var file = new File("${temp.path}/nonExistentDirectory/newFile");
197 192
198 // Create in non-existent directory should throw exception. 193 // Create in non-existent directory should throw exception.
199 Expect.throws(() => file.directorySync(), 194 Expect.throws(() => file.directorySync(),
200 (e) => checkDirectoryInNonExistentDirectoryException(e)); 195 (e) => checkDirectoryInNonExistentDirectoryException(e));
201 196
202 var dirFuture = file.directory(); 197 var dirFuture = file.directory();
203 dirFuture.then((directory) => Expect.fail("Unreachable code")); 198 dirFuture.then((directory) => Expect.fail("Unreachable code"))
204 dirFuture.handleException((e) { 199 .catchError((e) {
205 checkDirectoryInNonExistentDirectoryException(e); 200 checkDirectoryInNonExistentDirectoryException(e.error);
206 p.toSendPort().send(null); 201 p.toSendPort().send(null);
207 return true;
208 }); 202 });
209 } 203 }
210 204
211 void testReadAsBytesNonExistent() { 205 void testReadAsBytesNonExistent() {
212 Directory temp = tempDir(); 206 Directory temp = tempDir();
213 ReceivePort p = new ReceivePort(); 207 ReceivePort p = new ReceivePort();
214 p.receive((x, y) { 208 p.receive((x, y) {
215 p.close(); 209 p.close();
216 temp.deleteSync(recursive: true); 210 temp.deleteSync(recursive: true);
217 }); 211 });
218 var file = new File("${temp.path}/nonExistentFile3"); 212 var file = new File("${temp.path}/nonExistentFile3");
219 213
220 // Non-existing file should throw exception. 214 // Non-existing file should throw exception.
221 Expect.throws(() => file.readAsBytesSync(), 215 Expect.throws(() => file.readAsBytesSync(),
222 (e) => checkOpenNonExistentFileException(e)); 216 (e) => checkOpenNonExistentFileException(e));
223 217
224 var readAsBytesFuture = file.readAsBytes(); 218 var readAsBytesFuture = file.readAsBytes();
225 readAsBytesFuture.then((data) => Expect.fail("Unreachable code")); 219 readAsBytesFuture.then((data) => Expect.fail("Unreachable code"))
226 readAsBytesFuture.handleException((e) { 220 .catchError((e) {
227 checkOpenNonExistentFileException(e); 221 checkOpenNonExistentFileException(e.error);
228 p.toSendPort().send(null); 222 p.toSendPort().send(null);
229 return true;
230 }); 223 });
231 } 224 }
232 225
233 void testReadAsTextNonExistent() { 226 void testReadAsTextNonExistent() {
234 Directory temp = tempDir(); 227 Directory temp = tempDir();
235 ReceivePort p = new ReceivePort(); 228 ReceivePort p = new ReceivePort();
236 p.receive((x, y) { 229 p.receive((x, y) {
237 p.close(); 230 p.close();
238 temp.deleteSync(recursive: true); 231 temp.deleteSync(recursive: true);
239 }); 232 });
240 var file = new File("${temp.path}/nonExistentFile4"); 233 var file = new File("${temp.path}/nonExistentFile4");
241 234
242 // Non-existing file should throw exception. 235 // Non-existing file should throw exception.
243 Expect.throws(() => file.readAsStringSync(), 236 Expect.throws(() => file.readAsStringSync(),
244 (e) => checkOpenNonExistentFileException(e)); 237 (e) => checkOpenNonExistentFileException(e));
245 238
246 var readAsStringFuture = file.readAsString(Encoding.ASCII); 239 var readAsStringFuture = file.readAsString(Encoding.ASCII);
247 readAsStringFuture.then((data) => Expect.fail("Unreachable code")); 240 readAsStringFuture.then((data) => Expect.fail("Unreachable code"))
248 readAsStringFuture.handleException((e) { 241 .catchError((e) {
249 checkOpenNonExistentFileException(e); 242 checkOpenNonExistentFileException(e.error);
250 p.toSendPort().send(null); 243 p.toSendPort().send(null);
251 return true;
252 }); 244 });
253 } 245 }
254 246
255 testReadAsLinesNonExistent() { 247 testReadAsLinesNonExistent() {
256 Directory temp = tempDir(); 248 Directory temp = tempDir();
257 ReceivePort p = new ReceivePort(); 249 ReceivePort p = new ReceivePort();
258 p.receive((x, y) { 250 p.receive((x, y) {
259 p.close(); 251 p.close();
260 temp.deleteSync(recursive: true); 252 temp.deleteSync(recursive: true);
261 }); 253 });
262 var file = new File("${temp.path}/nonExistentFile5"); 254 var file = new File("${temp.path}/nonExistentFile5");
263 255
264 // Non-existing file should throw exception. 256 // Non-existing file should throw exception.
265 Expect.throws(() => file.readAsLinesSync(), 257 Expect.throws(() => file.readAsLinesSync(),
266 (e) => checkOpenNonExistentFileException(e)); 258 (e) => checkOpenNonExistentFileException(e));
267 259
268 var readAsLinesFuture = file.readAsLines(Encoding.ASCII); 260 var readAsLinesFuture = file.readAsLines(Encoding.ASCII);
269 readAsLinesFuture.then((data) => Expect.fail("Unreachable code")); 261 readAsLinesFuture.then((data) => Expect.fail("Unreachable code"))
270 readAsLinesFuture.handleException((e) { 262 .catchError((e) {
271 checkOpenNonExistentFileException(e); 263 checkOpenNonExistentFileException(e.error);
272 p.toSendPort().send(null); 264 p.toSendPort().send(null);
273 return true;
274 }); 265 });
275 } 266 }
276 267
277 bool checkWriteReadOnlyFileException(e) { 268 bool checkWriteReadOnlyFileException(e) {
278 Expect.isTrue(e is FileIOException); 269 Expect.isTrue(e is FileIOException);
279 Expect.isTrue(e.osError != null); 270 Expect.isTrue(e.osError != null);
280 Expect.isTrue(e.osError.errorCode != OSError.noErrorCode); 271 Expect.isTrue(e.osError.errorCode != OSError.noErrorCode);
281 return true; 272 return true;
282 } 273 }
283 274
(...skipping 17 matching lines...) Expand all
301 292
302 testWriteByteToReadOnlyFile() { 293 testWriteByteToReadOnlyFile() {
303 createTestFile((file, port) { 294 createTestFile((file, port) {
304 var openedFile = file.openSync(FileMode.READ); 295 var openedFile = file.openSync(FileMode.READ);
305 296
306 // Writing to read only file should throw an exception. 297 // Writing to read only file should throw an exception.
307 Expect.throws(() => openedFile.writeByteSync(0), 298 Expect.throws(() => openedFile.writeByteSync(0),
308 (e) => checkWriteReadOnlyFileException(e)); 299 (e) => checkWriteReadOnlyFileException(e));
309 300
310 var writeByteFuture = openedFile.writeByte(0); 301 var writeByteFuture = openedFile.writeByte(0);
311 writeByteFuture.handleException((e) { 302 writeByteFuture.catchError((e) {
312 checkWriteReadOnlyFileException(e); 303 checkWriteReadOnlyFileException(e.error);
313 openedFile.close().then((ignore) => port.send(null)); 304 openedFile.close().then((ignore) => port.send(null));
314 return true;
315 }); 305 });
316 }); 306 });
317 } 307 }
318 308
319 testWriteListToReadOnlyFile() { 309 testWriteListToReadOnlyFile() {
320 createTestFile((file, port) { 310 createTestFile((file, port) {
321 var openedFile = file.openSync(FileMode.READ); 311 var openedFile = file.openSync(FileMode.READ);
322 312
323 List data = [0, 1, 2, 3]; 313 List data = [0, 1, 2, 3];
324 // Writing to read only file should throw an exception. 314 // Writing to read only file should throw an exception.
325 Expect.throws(() => openedFile.writeListSync(data, 0, data.length), 315 Expect.throws(() => openedFile.writeListSync(data, 0, data.length),
326 (e) => checkWriteReadOnlyFileException(e)); 316 (e) => checkWriteReadOnlyFileException(e));
327 317
328 var writeListFuture = openedFile.writeList(data, 0, data.length); 318 var writeListFuture = openedFile.writeList(data, 0, data.length);
329 writeListFuture.handleException((e) { 319 writeListFuture.catchError((e) {
330 checkWriteReadOnlyFileException(e); 320 checkWriteReadOnlyFileException(e.error);
331 openedFile.close().then((ignore) => port.send(null)); 321 openedFile.close().then((ignore) => port.send(null));
332 return true;
333 }); 322 });
334 }); 323 });
335 } 324 }
336 325
337 testTruncateReadOnlyFile() { 326 testTruncateReadOnlyFile() {
338 createTestFile((file, port) { 327 createTestFile((file, port) {
339 var openedFile = file.openSync(FileMode.WRITE); 328 var openedFile = file.openSync(FileMode.WRITE);
340 openedFile.writeByteSync(0); 329 openedFile.writeByteSync(0);
341 openedFile.closeSync(); 330 openedFile.closeSync();
342 openedFile = file.openSync(FileMode.READ); 331 openedFile = file.openSync(FileMode.READ);
343 332
344 // Truncating read only file should throw an exception. 333 // Truncating read only file should throw an exception.
345 Expect.throws(() => openedFile.truncateSync(0), 334 Expect.throws(() => openedFile.truncateSync(0),
346 (e) => checkWriteReadOnlyFileException(e)); 335 (e) => checkWriteReadOnlyFileException(e));
347 336
348 var truncateFuture = openedFile.truncate(0); 337 var truncateFuture = openedFile.truncate(0);
349 truncateFuture.then((ignore) => Expect.fail("Unreachable code")); 338 truncateFuture.then((ignore) => Expect.fail("Unreachable code"))
350 truncateFuture.handleException((e) { 339 .catchError((e) {
351 checkWriteReadOnlyFileException(e); 340 checkWriteReadOnlyFileException(e.error);
352 openedFile.close().then((ignore) => port.send(null)); 341 openedFile.close().then((ignore) => port.send(null));
353 return true;
354 }); 342 });
355 }); 343 });
356 } 344 }
357 345
358 bool checkFileClosedException(e) { 346 bool checkFileClosedException(e) {
359 Expect.isTrue(e is FileIOException); 347 Expect.isTrue(e is FileIOException);
360 Expect.isTrue(e.toString().indexOf("File closed") != -1); 348 Expect.isTrue(e.toString().indexOf("File closed") != -1);
361 Expect.isTrue(e.osError == null); 349 Expect.isTrue(e.osError == null);
362 return true; 350 return true;
363 } 351 }
(...skipping 21 matching lines...) Expand all
385 Expect.throws(() => openedFile.truncateSync(0), 373 Expect.throws(() => openedFile.truncateSync(0),
386 (e) => checkFileClosedException(e)); 374 (e) => checkFileClosedException(e));
387 Expect.throws(() => openedFile.lengthSync(), 375 Expect.throws(() => openedFile.lengthSync(),
388 (e) => checkFileClosedException(e)); 376 (e) => checkFileClosedException(e));
389 Expect.throws(() => openedFile.flushSync(), 377 Expect.throws(() => openedFile.flushSync(),
390 (e) => checkFileClosedException(e)); 378 (e) => checkFileClosedException(e));
391 379
392 var errorCount = 0; 380 var errorCount = 0;
393 381
394 _errorHandler(e) { 382 _errorHandler(e) {
395 checkFileClosedException(e); 383 checkFileClosedException(e.error);
396 if (--errorCount == 0) { 384 if (--errorCount == 0) {
397 port.send(null); 385 port.send(null);
398 } 386 }
399 return true;
400 } 387 }
401 388
402 var readByteFuture = openedFile.readByte(); 389 var readByteFuture = openedFile.readByte();
403 readByteFuture.then((byte) => Expect.fail("Unreachable code")); 390 readByteFuture.then((byte) => Expect.fail("Unreachable code"))
404 readByteFuture.handleException(_errorHandler); 391 .catchError(_errorHandler);
405 errorCount++; 392 errorCount++;
406 var writeByteFuture = openedFile.writeByte(0); 393 var writeByteFuture = openedFile.writeByte(0);
407 writeByteFuture.then((ignore) => Expect.fail("Unreachable code")); 394 writeByteFuture.then((ignore) => Expect.fail("Unreachable code"))
408 writeByteFuture.handleException(_errorHandler); 395 .catchError(_errorHandler);
409 errorCount++; 396 errorCount++;
410 var readListFuture = openedFile.readList(data, 0, data.length); 397 var readListFuture = openedFile.readList(data, 0, data.length);
411 readListFuture.then((bytesRead) => Expect.fail("Unreachable code")); 398 readListFuture.then((bytesRead) => Expect.fail("Unreachable code"))
412 readListFuture.handleException(_errorHandler); 399 .catchError(_errorHandler);
413 errorCount++; 400 errorCount++;
414 var writeListFuture = openedFile.writeList(data, 0, data.length); 401 var writeListFuture = openedFile.writeList(data, 0, data.length);
415 writeListFuture.then((ignore) => Expect.fail("Unreachable code")); 402 writeListFuture.then((ignore) => Expect.fail("Unreachable code"))
416 writeListFuture.handleException(_errorHandler); 403 .catchError(_errorHandler);
417 errorCount++; 404 errorCount++;
418 var writeStringFuture = openedFile.writeString("Hello"); 405 var writeStringFuture = openedFile.writeString("Hello");
419 writeStringFuture.then((ignore) => Expect.fail("Unreachable code")); 406 writeStringFuture.then((ignore) => Expect.fail("Unreachable code"))
420 writeStringFuture.handleException(_errorHandler); 407 .catchError(_errorHandler);
421 errorCount++; 408 errorCount++;
422 var positionFuture = openedFile.position(); 409 var positionFuture = openedFile.position();
423 positionFuture.then((position) => Expect.fail("Unreachable code")); 410 positionFuture.then((position) => Expect.fail("Unreachable code"))
424 positionFuture.handleException(_errorHandler); 411 .catchError(_errorHandler);
425 errorCount++; 412 errorCount++;
426 var setPositionFuture = openedFile.setPosition(0); 413 var setPositionFuture = openedFile.setPosition(0);
427 setPositionFuture.then((ignore) => Expect.fail("Unreachable code")); 414 setPositionFuture.then((ignore) => Expect.fail("Unreachable code"))
428 setPositionFuture.handleException(_errorHandler); 415 .catchError(_errorHandler);
429 errorCount++; 416 errorCount++;
430 var truncateFuture = openedFile.truncate(0); 417 var truncateFuture = openedFile.truncate(0);
431 truncateFuture.then((ignore) => Expect.fail("Unreachable code")); 418 truncateFuture.then((ignore) => Expect.fail("Unreachable code"))
432 truncateFuture.handleException(_errorHandler); 419 .catchError(_errorHandler);
433 errorCount++; 420 errorCount++;
434 var lenFuture = openedFile.length(); 421 var lenFuture = openedFile.length();
435 lenFuture.then((length) => Expect.fail("Unreachable code")); 422 lenFuture.then((length) => Expect.fail("Unreachable code"))
436 lenFuture.handleException(_errorHandler); 423 .catchError(_errorHandler);
437 errorCount++; 424 errorCount++;
438 var flushFuture = openedFile.flush(); 425 var flushFuture = openedFile.flush();
439 flushFuture.then((ignore) => Expect.fail("Unreachable code")); 426 flushFuture.then((ignore) => Expect.fail("Unreachable code"))
440 flushFuture.handleException(_errorHandler); 427 .catchError(_errorHandler);
441 errorCount++; 428 errorCount++;
442 }); 429 });
443 } 430 }
444 431
445 testRepeatedlyCloseFile() { 432 testRepeatedlyCloseFile() {
446 createTestFile((file, port) { 433 createTestFile((file, port) {
447 var openedFile = file.openSync(); 434 var openedFile = file.openSync();
448 openedFile.close().then((ignore) { 435 openedFile.close().then((ignore) {
449 var closeFuture = openedFile.close(); 436 var closeFuture = openedFile.close();
450 closeFuture.handleException((e) { 437 closeFuture.then((ignore) => null)
451 Expect.isTrue(e is FileIOException); 438 .catchError((e) {
439 Expect.isTrue(e.error is FileIOException);
452 port.send(null); 440 port.send(null);
453 return true;
454 }); 441 });
455 closeFuture.then((ignore) => null);
456 }); 442 });
457 }); 443 });
458 } 444 }
459 445
460 testRepeatedlyCloseFileSync() { 446 testRepeatedlyCloseFileSync() {
461 createTestFile((file, port) { 447 createTestFile((file, port) {
462 var openedFile = file.openSync(); 448 var openedFile = file.openSync();
463 openedFile.closeSync(); 449 openedFile.closeSync();
464 Expect.throws(openedFile.closeSync, 450 Expect.throws(openedFile.closeSync,
465 (e) => e is FileIOException); 451 (e) => e is FileIOException);
(...skipping 11 matching lines...) Expand all
477 testReadAsBytesNonExistent(); 463 testReadAsBytesNonExistent();
478 testReadAsTextNonExistent(); 464 testReadAsTextNonExistent();
479 testReadAsLinesNonExistent(); 465 testReadAsLinesNonExistent();
480 testWriteByteToReadOnlyFile(); 466 testWriteByteToReadOnlyFile();
481 testWriteListToReadOnlyFile(); 467 testWriteListToReadOnlyFile();
482 testTruncateReadOnlyFile(); 468 testTruncateReadOnlyFile();
483 testOperateOnClosedFile(); 469 testOperateOnClosedFile();
484 testRepeatedlyCloseFile(); 470 testRepeatedlyCloseFile();
485 testRepeatedlyCloseFileSync(); 471 testRepeatedlyCloseFileSync();
486 } 472 }
OLDNEW
« no previous file with comments | « tests/standalone/io/echo_server_test.dart ('k') | tests/standalone/io/file_fuzz_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698