| OLD | NEW |
| 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 // Testing file input stream, VM-only, standalone test. | 4 // Testing file input stream, VM-only, standalone test. |
| 5 | 5 |
| 6 #import("dart:io"); | 6 #import("dart:io"); |
| 7 #import("dart:isolate"); | 7 #import("dart:isolate"); |
| 8 | 8 |
| 9 void testOpenOutputStreamSync() { | 9 void testOpenOutputStreamSync() { |
| 10 Directory tempDirectory = new Directory(''); | 10 Directory tempDirectory = new Directory(''); |
| 11 | 11 |
| 12 // Create a port for waiting on the final result of this test. | 12 // Create a port for waiting on the final result of this test. |
| 13 ReceivePort done = new ReceivePort(); | 13 ReceivePort done = new ReceivePort(); |
| 14 done.receive((message, replyTo) { | 14 done.receive((message, replyTo) { |
| 15 tempDirectory.deleteSync(); | 15 tempDirectory.deleteSync(); |
| 16 done.close(); | 16 done.close(); |
| 17 }); | 17 }); |
| 18 | 18 |
| 19 tempDirectory.createTempSync(); | 19 tempDirectory.createTempSync(); |
| 20 String fileName = "${tempDirectory.path}/test"; | 20 String fileName = "${tempDirectory.path}/test"; |
| 21 File file = new File(fileName); | 21 File file = new File(fileName); |
| 22 file.createSync(); | 22 file.createSync(); |
| 23 OutputStream x = file.openOutputStream(); | 23 OutputStream x = file.openOutputStream(); |
| 24 x.write([65, 66, 67]); | 24 x.write([65, 66, 67]); |
| 25 x.close(); | 25 x.close(); |
| 26 x.closeHandler = () { | 26 x.onClosed = () { |
| 27 file.deleteSync(); | 27 file.deleteSync(); |
| 28 done.toSendPort().send("done"); | 28 done.toSendPort().send("done"); |
| 29 }; | 29 }; |
| 30 } | 30 } |
| 31 | 31 |
| 32 | 32 |
| 33 void testOutputStreamNoPendingWrite() { | 33 void testOutputStreamNoPendingWrite() { |
| 34 Directory tempDirectory = new Directory(''); | 34 Directory tempDirectory = new Directory(''); |
| 35 | 35 |
| 36 // Create a port for waiting on the final result of this test. | 36 // Create a port for waiting on the final result of this test. |
| 37 ReceivePort done = new ReceivePort(); | 37 ReceivePort done = new ReceivePort(); |
| 38 done.receive((message, replyTo) { | 38 done.receive((message, replyTo) { |
| 39 tempDirectory.delete(); | 39 tempDirectory.deleteRecursively(() { |
| 40 tempDirectory.deleteHandler = () { | |
| 41 done.close(); | 40 done.close(); |
| 42 }; | 41 }); |
| 43 }); | 42 }); |
| 44 | 43 |
| 45 tempDirectory.createTemp(); | 44 tempDirectory.createTemp(() { |
| 46 tempDirectory.createTempHandler = () { | |
| 47 String fileName = "${tempDirectory.path}/test"; | 45 String fileName = "${tempDirectory.path}/test"; |
| 48 File file = new File(fileName); | 46 File file = new File(fileName); |
| 49 file.create(); | 47 file.create(() { |
| 50 file.createHandler = () { | |
| 51 OutputStream stream = file.openOutputStream(); | 48 OutputStream stream = file.openOutputStream(); |
| 52 final total = 100; | 49 final total = 100; |
| 53 var count = 0; | 50 var count = 0; |
| 54 stream.noPendingWriteHandler = () { | 51 stream.onNoPendingWrites = () { |
| 55 stream.write([count++]); | 52 stream.write([count++]); |
| 56 if (count == total) { | 53 if (count == total) { |
| 57 stream.close(); | 54 stream.close(); |
| 58 } | 55 } |
| 59 stream.closeHandler = () { | 56 stream.onClosed = () { |
| 60 List buffer = new List<int>(total); | 57 List buffer = new List<int>(total); |
| 61 File fileSync = new File(fileName); | 58 File fileSync = new File(fileName); |
| 62 var openedFile = fileSync.openSync(); | 59 var openedFile = fileSync.openSync(); |
| 63 openedFile.readListSync(buffer, 0, total); | 60 openedFile.readListSync(buffer, 0, total); |
| 64 for (var i = 0; i < total; i++) { | 61 for (var i = 0; i < total; i++) { |
| 65 Expect.equals(i, buffer[i]); | 62 Expect.equals(i, buffer[i]); |
| 66 } | 63 } |
| 67 openedFile.closeSync(); | 64 openedFile.closeSync(); |
| 68 fileSync.deleteSync(); | 65 fileSync.deleteSync(); |
| 69 done.toSendPort().send("done"); | 66 done.toSendPort().send("done"); |
| 70 }; | 67 }; |
| 71 }; | 68 }; |
| 72 }; | 69 }); |
| 73 }; | 70 }); |
| 74 } | 71 } |
| 75 | 72 |
| 76 | 73 |
| 77 main() { | 74 main() { |
| 78 testOpenOutputStreamSync(); | 75 testOpenOutputStreamSync(); |
| 79 testOutputStreamNoPendingWrite(); | 76 testOutputStreamNoPendingWrite(); |
| 80 } | 77 } |
| OLD | NEW |