Chromium Code Reviews| 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 // | 4 // |
| 5 // Dart test program for testing file I/O. | 5 // Dart test program for testing file I/O. |
| 6 | 6 |
| 7 #import("dart:io"); | 7 #import("dart:io"); |
| 8 #import("dart:isolate"); | 8 #import("dart:isolate"); |
| 9 | 9 |
| 10 class MyListOfOneElement implements List { | 10 class MyListOfOneElement implements List { |
| (...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 503 Expect.isTrue(d.existsSync()); | 503 Expect.isTrue(d.existsSync()); |
| 504 Expect.isTrue(d.path.endsWith(tempDir)); | 504 Expect.isTrue(d.path.endsWith(tempDir)); |
| 505 file.deleteSync(); | 505 file.deleteSync(); |
| 506 // Directories should throw exception. | 506 // Directories should throw exception. |
| 507 var file_dir = new File("."); | 507 var file_dir = new File("."); |
| 508 Expect.throws(file_dir.directorySync, (e) { return e is FileIOException; }); | 508 Expect.throws(file_dir.directorySync, (e) { return e is FileIOException; }); |
| 509 file_dir = new File(tempDir); | 509 file_dir = new File(tempDir); |
| 510 Expect.throws(file_dir.directorySync, (e) { return e is FileIOException; }); | 510 Expect.throws(file_dir.directorySync, (e) { return e is FileIOException; }); |
| 511 } | 511 } |
| 512 | 512 |
| 513 static void testFileError() { | |
| 514 void checkOpenNonExistentFileException(e) { | |
| 515 print(e); | |
| 516 Expect.isTrue(e is FileIOException); | |
| 517 Expect.isTrue(e.osError != null); | |
| 518 Expect.isTrue(e.toString().indexOf("Cannot open file") != -1); | |
| 519 if (new Platform().operatingSystem() == "macos") { | |
|
Mads Ager (google)
2012/03/09 09:40:13
Remember to broaden this one to the other platform
Søren Gjesse
2012/03/13 08:25:55
Done.
| |
| 520 Expect.isTrue(e.toString().indexOf("No such file or directory") != -1); | |
| 521 Expect.equals(2, e.osError.errorCode); | |
| 522 } | |
| 523 } | |
| 524 | |
| 525 var tempDir = tempDirectory.path; | |
| 526 var file = new File("${tempDir}/nonExistentFile"); | |
| 527 | |
| 528 // Non-existing file should throw exception. | |
| 529 try { | |
| 530 file.openSync(); | |
| 531 } catch (Exception e) { | |
| 532 checkOpenNonExistentFileException(e); | |
| 533 } | |
| 534 | |
| 535 file.open(FileMode.READ, (raf) => Expect.fail("Unreachable code")); | |
| 536 file.onError = (e) => checkOpenNonExistentFileException(e); | |
| 537 } | |
| 538 | |
| 539 | |
| 513 // Test for file length functionality. | 540 // Test for file length functionality. |
| 514 static void testLength() { | 541 static void testLength() { |
| 515 String filename = getFilename("tests/vm/data/fixed_length_file"); | 542 String filename = getFilename("tests/vm/data/fixed_length_file"); |
| 516 RandomAccessFile input = (new File(filename)).openSync(); | 543 RandomAccessFile input = (new File(filename)).openSync(); |
| 517 input.onError = (s) { | 544 input.onError = (s) { |
| 518 Expect.fail("No errors expected"); | 545 Expect.fail("No errors expected"); |
| 519 }; | 546 }; |
| 520 input.length((length) { | 547 input.length((length) { |
| 521 Expect.equals(42, length); | 548 Expect.equals(42, length); |
| 522 input.close(() => null); | 549 input.close(() => null); |
| (...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1033 // Helper method to be able to run the test from the runtime | 1060 // Helper method to be able to run the test from the runtime |
| 1034 // directory, or the top directory. | 1061 // directory, or the top directory. |
| 1035 static String getFilename(String path) => | 1062 static String getFilename(String path) => |
| 1036 new File(path).existsSync() ? path : 'runtime/' + path; | 1063 new File(path).existsSync() ? path : 'runtime/' + path; |
| 1037 | 1064 |
| 1038 static String getDataFilename(String path) => | 1065 static String getDataFilename(String path) => |
| 1039 new File(path).existsSync() ? path : '../' + path; | 1066 new File(path).existsSync() ? path : '../' + path; |
| 1040 | 1067 |
| 1041 // Main test entrypoint. | 1068 // Main test entrypoint. |
| 1042 static testMain() { | 1069 static testMain() { |
| 1043 testRead(); | 1070 /*testRead(); |
| 1044 testReadSync(); | 1071 testReadSync(); |
| 1045 testReadStream(); | 1072 testReadStream(); |
| 1046 testLength(); | 1073 testLength(); |
| 1047 testLengthSync(); | 1074 testLengthSync(); |
| 1048 testPosition(); | 1075 testPosition(); |
| 1049 testPositionSync(); | 1076 testPositionSync(); |
| 1050 testMixedSyncAndAsync(); | 1077 testMixedSyncAndAsync(); |
| 1051 testOpenDirectoryAsFile(); | 1078 testOpenDirectoryAsFile(); |
| 1052 testOpenDirectoryAsFileSync(); | 1079 testOpenDirectoryAsFileSync(); |
| 1053 testReadAsBytes(); | 1080 testReadAsBytes(); |
| 1054 testReadAsBytesSync(); | 1081 testReadAsBytesSync(); |
| 1055 testReadAsText(); | 1082 testReadAsText(); |
| 1056 testReadAsTextSync(); | 1083 testReadAsTextSync(); |
| 1057 testReadAsLines(); | 1084 testReadAsLines(); |
| 1058 testReadAsLinesSync(); | 1085 testReadAsLinesSync(); |
| 1059 testReadAsErrors(); | 1086 testReadAsErrors(); |
| 1060 | 1087 */ |
| 1061 createTempDirectory(() { | 1088 createTempDirectory(() { |
| 1062 testReadWrite(); | 1089 /* testReadWrite(); |
| 1063 testReadWriteSync(); | 1090 testReadWriteSync(); |
| 1064 testReadWriteStream(); | 1091 testReadWriteStream(); |
| 1065 testReadEmptyFileSync(); | 1092 testReadEmptyFileSync(); |
| 1066 testReadEmptyFile(); | 1093 testReadEmptyFile(); |
| 1067 testTruncate(); | 1094 testTruncate(); |
| 1068 testTruncateSync(); | 1095 testTruncateSync(); |
| 1069 testCloseException(); | 1096 testCloseException(); |
| 1070 testCloseExceptionStream(); | 1097 testCloseExceptionStream(); |
| 1071 testBufferOutOfBoundsException(); | 1098 testBufferOutOfBoundsException(); |
| 1072 testAppend(); | 1099 testAppend(); |
| 1073 testAppendSync(); | 1100 testAppendSync(); |
| 1074 testWriteAppend(); | 1101 testWriteAppend(); |
| 1075 testOutputStreamWriteAppend(); | 1102 testOutputStreamWriteAppend(); |
| 1076 testWriteVariousLists(); | 1103 testWriteVariousLists(); |
| 1077 testDirectory(); | 1104 testDirectory(); |
| 1078 testDirectorySync(); | 1105 testDirectorySync();*/ |
| 1106 testFileError(); | |
| 1079 }); | 1107 }); |
| 1080 } | 1108 } |
| 1081 } | 1109 } |
| 1082 | 1110 |
| 1083 main() { | 1111 main() { |
| 1084 FileTest.testMain(); | 1112 FileTest.testMain(); |
| 1085 } | 1113 } |
| OLD | NEW |