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

Unified Diff: tests/standalone/src/FileTest.dart

Issue 8431028: Implement async file API on top of isolates. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix type mismatch. Created 9 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/standalone/src/DirectoryInvalidArgumentsTest.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/standalone/src/FileTest.dart
diff --git a/tests/standalone/src/FileTest.dart b/tests/standalone/src/FileTest.dart
index 5639fd234b2349d9ea46717d38e3b4167c34fb76..4660c42c5e26a41c26abe45858d4378120080c3e 100644
--- a/tests/standalone/src/FileTest.dart
+++ b/tests/standalone/src/FileTest.dart
@@ -68,6 +68,39 @@ class FileTest {
// Read a file and check part of it's contents.
String filename = getFilename("bin/file_test.cc");
File file = new File(filename);
+ file.errorHandler = (s) {
+ Expect.fail("No errors expected");
+ };
+ file.openHandler = () {
+ List<int> buffer = new List<int>(10);
+ file.readListHandler = (bytes_read) {
+ Expect.equals(5, bytes_read);
+ file.readListHandler = (bytes_read) {
+ Expect.equals(5, bytes_read);
+ Expect.equals(47, buffer[0]); // represents '/' in the file.
+ Expect.equals(47, buffer[1]); // represents '/' in the file.
+ Expect.equals(32, buffer[2]); // represents ' ' in the file.
+ Expect.equals(67, buffer[3]); // represents 'C' in the file.
+ Expect.equals(111, buffer[4]); // represents 'o' in the file.
+ Expect.equals(112, buffer[5]); // represents 'p' in the file.
+ Expect.equals(121, buffer[6]); // represents 'y' in the file.
+ Expect.equals(114, buffer[7]); // represents 'r' in the file.
+ Expect.equals(105, buffer[8]); // represents 'i' in the file.
+ Expect.equals(103, buffer[9]); // represents 'g' in the file.
+ file.close();
+ };
+ file.readList(buffer, 5, 5);
+ };
+ file.readList(buffer, 0, 5);
+ };
+ file.open();
+ return 1;
+ }
+
+ static int testReadSync() {
+ // Read a file and check part of it's contents.
+ String filename = getFilename("bin/file_test.cc");
+ File file = new File(filename);
file.openSync();
List<int> buffer = new List<int>(42);
int bytes_read = 0;
@@ -95,6 +128,66 @@ class FileTest {
// Read a file.
String inFilename = getFilename("tests/vm/data/fixed_length_file");
File file = new File(inFilename);
+ file.errorHandler = (s) {
+ Expect.fail("No errors expected");
+ };
+ file.openHandler = () {
+ List<int> buffer1 = new List<int>(42);
+ file.readListHandler = (bytes_read) {
+ Expect.equals(42, bytes_read);
+ file.closeHandler = () {
+ // Write the contents of the file just read into another file.
+ String outFilenameBase =
+ getFilename("tests/vm/data/fixed_length_file_out");
+ file = new File(outFilenameBase);
+ file.errorHandler = (s) {
+ Expect.fail("No errors expected");
+ };
+ file.openHandler = () {
+ file.noPendingWriteHandler = () {
+ file.closeHandler = () {
+ // Now read the contents of the file just written.
+ List<int> buffer2 = new List<int>(bytes_read);
+ file = new File(getFilename(outFilenameBase));
+ file.errorHandler = (s) {
+ Expect.fail("No errors expected");
+ };
+ file.openHandler = () {
+ file.readListHandler = (bytes_read) {
+ Expect.equals(42, bytes_read);
+ file.closeHandler = () {
+ // Now compare the two buffers to check if they
+ // are identical.
+ Expect.equals(buffer1.length, buffer2.length);
+ for (int i = 0; i < buffer1.length; i++) {
+ Expect.equals(buffer1[i], buffer2[i]);
+ }
+ };
+ file.close();
+ };
+ file.readList(buffer2, 0, 42);
+ };
+ file.open();
+ };
+ file.close();
+ };
+ file.writeList(buffer1, 0, bytes_read);
+ };
+ file.open(true);
+ };
+ file.close();
+ };
+ file.readList(buffer1, 0, 42);
+ };
+ file.open();
+ return 1;
+
+ }
+
+ static int testReadWriteSync() {
+ // Read a file.
+ String inFilename = getFilename("tests/vm/data/fixed_length_file");
+ File file = new File(inFilename);
file.openSync();
List<int> buffer1 = new List<int>(42);
int bytes_read = 0;
@@ -127,6 +220,21 @@ class FileTest {
static int testLength() {
String filename = getFilename("tests/vm/data/fixed_length_file");
File input = new File(filename);
+ input.errorHandler = (s) {
+ Expect.fail("No errors expected");
+ };
+ input.openSync();
+ input.lengthHandler = (length) {
+ Expect.equals(42, length);
+ input.close();
+ };
+ input.length();
+ return 1;
+ }
+
+ static int testLengthSync() {
+ String filename = getFilename("tests/vm/data/fixed_length_file");
+ File input = new File(filename);
input.openSync();
Expect.equals(42, input.lengthSync());
input.closeSync();
@@ -137,6 +245,35 @@ class FileTest {
static int testPosition() {
String filename = getFilename("tests/vm/data/fixed_length_file");
File input = new File(filename);
+ input.errorHandler = (s) {
+ Expect.fail("No errors expected");
+ };
+ input.openSync();
+ input.positionHandler = (position) {
+ Expect.equals(0, position);
+ List<int> buffer = new List<int>(100);
+ input.readListHandler = (bytes_read) {
+ input.positionHandler = (position) {
+ Expect.equals(12, position);
+ input.readListHandler = (bytes_read) {
+ input.positionHandler = (position) {
+ Expect.equals(18, position);
+ input.close();
+ };
+ };
+ input.readList(buffer, 12, 6);
+ };
+ input.position();
+ };
+ input.readList(buffer, 0, 12);
+ };
+ input.position();
+ return 1;
+ }
+
+ static int testPositionSync() {
+ String filename = getFilename("tests/vm/data/fixed_length_file");
+ File input = new File(filename);
input.openSync();
Expect.equals(0, input.positionSync());
List<int> buffer = new List<int>(100);
@@ -372,6 +509,24 @@ class FileTest {
return 1;
}
+ static int testMixedSyncAndAsync() {
+ var name = getFilename("tests/vm/data/fixed_length_file");
+ var f = new File(name);
+ f.errorHandler = (s) {
+ Expect.fail("No errors expected");
+ };
+ f.existsHandler = (exists) {
+ try {
+ f.existsSync();
+ Expect.fail("Expected exception");
+ } catch (var e) {
+ Expect.isTrue(e is FileIOException);
+ }
+ };
+ f.exists();
+ return 1;
+ }
+
// Helper method to be able to run the test from the runtime
// directory, or the top directory.
static String getFilename(String path) =>
@@ -380,14 +535,19 @@ class FileTest {
// Main test entrypoint.
static testMain() {
Expect.equals(1, testRead());
+ Expect.equals(1, testReadSync());
Expect.equals(1, testReadWrite());
+ Expect.equals(1, testReadWriteSync());
Expect.equals(1, testReadStream());
Expect.equals(1, testReadWriteStream());
Expect.equals(1, testLength());
+ Expect.equals(1, testLengthSync());
Expect.equals(1, testPosition());
+ Expect.equals(1, testPositionSync());
Expect.equals(1, testCloseException());
Expect.equals(1, testCloseExceptionStream());
Expect.equals(1, testBufferOutOfBoundsException());
+ Expect.equals(1, testMixedSyncAndAsync());
}
}
« no previous file with comments | « tests/standalone/src/DirectoryInvalidArgumentsTest.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698