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

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

Issue 1156993003: Fix argument processing for RandomAccessFile.writeFrom (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Addressed review comments Created 5 years, 7 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
« no previous file with comments | « sdk/lib/io/file_impl.dart ('k') | no next file » | 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) 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 // Dart test program for testing file I/O. 5 // Dart test program for testing file I/O.
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:convert'; 8 import 'dart:convert';
9 import 'dart:collection'; 9 import 'dart:collection';
10 import 'dart:io'; 10 import 'dart:io';
(...skipping 698 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 RandomAccessFile openedFile = file.openSync(mode: WRITE); 709 RandomAccessFile openedFile = file.openSync(mode: WRITE);
710 openedFile.writeFromSync(buffer, 0, 10); 710 openedFile.writeFromSync(buffer, 0, 10);
711 Expect.equals(10, openedFile.lengthSync()); 711 Expect.equals(10, openedFile.lengthSync());
712 openedFile.truncateSync(5); 712 openedFile.truncateSync(5);
713 Expect.equals(5, openedFile.lengthSync()); 713 Expect.equals(5, openedFile.lengthSync());
714 openedFile.closeSync(); 714 openedFile.closeSync();
715 file.deleteSync(); 715 file.deleteSync();
716 Expect.isFalse(file.existsSync()); 716 Expect.isFalse(file.existsSync());
717 } 717 }
718 718
719 static void testReadInto() async {
720 asyncTestStarted();
721 File file = new File(tempDirectory.path + "/out_read_into");
722
723 var openedFile = await file.open(mode: WRITE);
724 await openedFile.writeFrom(const [1, 2, 3]);
725
726 await openedFile.setPosition(0);
727 var list = [null, null, null];
728 Expect.equals(3, await openedFile.readInto(list));
729 Expect.listEquals([1, 2, 3], list);
730
731 read(start, end, length, expected) async {
732 var list = [null, null, null];
733 await openedFile.setPosition(0);
734 Expect.equals(length, await openedFile.readInto(list, start, end));
735 Expect.listEquals(expected, list);
736 return list;
737 }
738
739 await read(0, 3, 3, [1, 2, 3]);
740 await read(0, 2, 2, [1, 2, null]);
741 await read(1, 2, 1, [null, 1, null]);
742 await read(1, 3, 2, [null, 1, 2]);
743 await read(2, 3, 1, [null, null, 1]);
744
745 asyncTestDone("testReadInto");
746 }
747
748 static void testReadIntoSync() {
749 File file = new File(tempDirectory.path + "/out_read_into_sync");
750
751 var openedFile = file.openSync(mode: WRITE);
752 openedFile.writeFromSync(const [1, 2, 3]);
753
754 openedFile.setPositionSync(0);
755 var list = [null, null, null];
756 Expect.equals(3, openedFile.readIntoSync(list));
757 Expect.listEquals([1, 2, 3], list);
758
759 read(start, end, length, expected) {
760 var list = [null, null, null];
761 openedFile.setPositionSync(0);
762 Expect.equals(length, openedFile.readIntoSync(list, start, end));
763 Expect.listEquals(expected, list);
764 return list;
765 }
766
767 read(0, 3, 3, [1, 2, 3]);
768 read(0, 2, 2, [1, 2, null]);
769 read(1, 2, 1, [null, 1, null]);
770 read(1, 3, 2, [null, 1, 2]);
771 read(2, 3, 1, [null, null, 1]);
772 }
773
774 static void testWriteFrom() async {
775 asyncTestStarted();
776 File file = new File(tempDirectory.path + "/out_write_from");
777
778 var buffer = const [1, 2, 3];
779 var openedFile = await file.open(mode: WRITE);
780
781 await openedFile.writeFrom(buffer);
782 var result = []..addAll(buffer);;
783
784 write([start, end]) async {
785 await openedFile.writeFrom(buffer, start, end);
786 result.addAll(buffer.sublist(start, end));
787 }
788 await write(0, 3);
789 await write(0, 2);
790 await write(1, 2);
791 await write(1, 3);
792 await write(2, 3);
793
794 var bytesFromFile = await file.readAsBytes();
795 Expect.listEquals(result, bytesFromFile);
796 asyncTestDone("testWriteFrom");
797 }
798
799 static void testWriteFromSync() {
800 File file = new File(tempDirectory.path + "/out_write_from_sync");
801
802 var buffer = const [1, 2, 3];
803 var openedFile = file.openSync(mode: WRITE);
804
805 openedFile.writeFromSync(buffer);
806 var result = []..addAll(buffer);;
807
808 write([start, end]) {
809 openedFile.writeFromSync(buffer, start, end);
810 result.addAll(buffer.sublist(start, end));
811 }
812 write(0, 3);
813 write(0, 2);
814 write(1, 2);
815 write(1, 3);
816 write(2, 3);
817
818 var bytesFromFile = file.readAsBytesSync();
819 Expect.listEquals(result, bytesFromFile);
820 }
821
719 // Tests exception handling after file was closed. 822 // Tests exception handling after file was closed.
720 static void testCloseException() { 823 static void testCloseException() {
721 bool exceptionCaught = false; 824 bool exceptionCaught = false;
722 bool wrongExceptionCaught = false; 825 bool wrongExceptionCaught = false;
723 File input = new File(tempDirectory.path + "/out_close_exception"); 826 File input = new File(tempDirectory.path + "/out_close_exception");
724 RandomAccessFile openedFile = input.openSync(mode: WRITE); 827 RandomAccessFile openedFile = input.openSync(mode: WRITE);
725 openedFile.closeSync(); 828 openedFile.closeSync();
726 try { 829 try {
727 openedFile.readByteSync(); 830 openedFile.readByteSync();
728 } on FileSystemException catch (ex) { 831 } on FileSystemException catch (ex) {
(...skipping 591 matching lines...) Expand 10 before | Expand all | Expand 10 after
1320 testReadWriteStreamLargeFile(); 1423 testReadWriteStreamLargeFile();
1321 testReadAsBytes(); 1424 testReadAsBytes();
1322 testReadAsBytesEmptyFile(); 1425 testReadAsBytesEmptyFile();
1323 testReadAsText(); 1426 testReadAsText();
1324 testReadAsTextEmptyFile(); 1427 testReadAsTextEmptyFile();
1325 testReadAsLines(); 1428 testReadAsLines();
1326 testReadAsErrors(); 1429 testReadAsErrors();
1327 testPosition(); 1430 testPosition();
1328 testTruncate(); 1431 testTruncate();
1329 testTruncateSync(); 1432 testTruncateSync();
1433 testReadInto();
1434 testReadIntoSync();
1435 testWriteFrom();
1436 testWriteFromSync();
1330 testCloseException(); 1437 testCloseException();
1331 testCloseExceptionStream(); 1438 testCloseExceptionStream();
1332 testBufferOutOfBoundsException(); 1439 testBufferOutOfBoundsException();
1333 testAppend(); 1440 testAppend();
1334 testAppendSync(); 1441 testAppendSync();
1335 testWriteAppend(); 1442 testWriteAppend();
1336 testOutputStreamWriteAppend(); 1443 testOutputStreamWriteAppend();
1337 testOutputStreamWriteString(); 1444 testOutputStreamWriteString();
1338 testWriteVariousLists(); 1445 testWriteVariousLists();
1339 testDirectory(); 1446 testDirectory();
1340 testDirectorySync(); 1447 testDirectorySync();
1341 testWriteStringUtf8(); 1448 testWriteStringUtf8();
1342 testWriteStringUtf8Sync(); 1449 testWriteStringUtf8Sync();
1343 testRename(targetExists: false); 1450 testRename(targetExists: false);
1344 testRenameSync(targetExists: false); 1451 testRenameSync(targetExists: false);
1345 testRename(targetExists: true); 1452 testRename(targetExists: true);
1346 testRenameSync(targetExists: true); 1453 testRenameSync(targetExists: true);
1347 testLastModified(); 1454 testLastModified();
1348 testDoubleAsyncOperation(); 1455 testDoubleAsyncOperation();
1349 asyncEnd(); 1456 asyncEnd();
1350 }); 1457 });
1351 } 1458 }
1352 } 1459 }
1353 1460
1354 main() { 1461 main() {
1355 FileTest.testMain(); 1462 FileTest.testMain();
1356 } 1463 }
OLDNEW
« no previous file with comments | « sdk/lib/io/file_impl.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698