| Index: tests/standalone/src/FileTest.dart
|
| diff --git a/tests/standalone/src/FileTest.dart b/tests/standalone/src/FileTest.dart
|
| index b740ca3dd5d9ac06a16ab985aaa47e1805e87354..5be2bfe20c2ddbc704161706b518a13732763e1b 100644
|
| --- a/tests/standalone/src/FileTest.dart
|
| +++ b/tests/standalone/src/FileTest.dart
|
| @@ -6,6 +6,13 @@
|
|
|
| #import("dart:io");
|
|
|
| +class MyListOfOneElement implements List {
|
| + int _value;
|
| + MyListOfOneElement(this._value);
|
| + int get length() => 1;
|
| + operator [](int index) => _value;
|
| +}
|
| +
|
| class FileTest {
|
| static Directory tempDirectory;
|
| static int numLiveAsyncTests = 0;
|
| @@ -395,6 +402,56 @@ class FileTest {
|
| file.create();
|
| }
|
|
|
| + // Test for file write of different types of lists.
|
| + static void testWriteVariousLists() {
|
| + final String fileName = "${tempDirectory.path}/testWriteVariousLists";
|
| + final File file = new File(fileName);
|
| + file.create();
|
| + file.createHandler = () {
|
| + file.open(FileMode.WRITE);
|
| + file.openHandler = (RandomAccessFile openedFile) {
|
| + // Write bytes from 0 to 7.
|
| + openedFile.writeList([0], 0, 1);
|
| + openedFile.writeList(const [1], 0, 1);
|
| + openedFile.writeList(new MyListOfOneElement(2), 0, 1);
|
| + var x = 12345678901234567890123456789012345678901234567890;
|
| + var y = 12345678901234567890123456789012345678901234567893;
|
| + openedFile.writeList([y - x], 0, 1);
|
| + openedFile.writeList([260], 0, 1); // 260 = 256 + 4 = 0x104.
|
| + openedFile.writeList(const [261], 0, 1);
|
| + openedFile.writeList(new MyListOfOneElement(262), 0, 1);
|
| + x = 12345678901234567890123456789012345678901234567890;
|
| + y = 12345678901234567890123456789012345678901234568153;
|
| + openedFile.writeList([y - x], 0, 1);
|
| +
|
| + openedFile.errorHandler = (s) {
|
| + Expect.fail("No errors expected : $s");
|
| + };
|
| + openedFile.noPendingWriteHandler = () {
|
| + openedFile.close();
|
| + };
|
| + openedFile.closeHandler = () {
|
| + // Check the written bytes.
|
| + final File file2 = new File(fileName);
|
| + var openedFile2 = file2.openSync();
|
| + vat length = openedFile2.lengthSync();
|
| + Expect.equals(8, length);
|
| + List data = new List(length);
|
| + var readLength = openedFile2.readListSync(data, 0, length);
|
| + Expect.equals(length, readLength);
|
| + for (var i = 0; i < data.length; i++) {
|
| + Expect.equals(i, data[i]);
|
| + }
|
| + openedFile2.closeSync();
|
| + file2.deleteSync();
|
| + };
|
| + };
|
| + file.errorHandler = (s) {
|
| + Expect.fail("No errors expected : $s");
|
| + };
|
| + };
|
| + }
|
| +
|
| // Test for file length functionality.
|
| static void testLength() {
|
| String filename = getFilename("tests/vm/data/fixed_length_file");
|
| @@ -843,6 +900,7 @@ class FileTest {
|
| testAppendSync();
|
| testWriteAppend();
|
| testOutputStreamWriteAppend();
|
| + testWriteVariousLists();
|
| });
|
| }
|
| }
|
|
|