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

Unified Diff: tests/standalone/io/file_typed_data_test.dart

Issue 13998008: Add support for even more typed data on native ports (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 8 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
« sdk/lib/io/file_impl.dart ('K') | « sdk/lib/io/file_impl.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/standalone/io/file_typed_data_test.dart
diff --git a/tests/standalone/io/file_typed_data_test.dart b/tests/standalone/io/file_typed_data_test.dart
index 3d03e8e9791f226a8d0908c12bb9cd5ef91846ac..7d5f715aa8b79c7fd5ba9207086e0babb92fe852 100644
--- a/tests/standalone/io/file_typed_data_test.dart
+++ b/tests/standalone/io/file_typed_data_test.dart
@@ -64,6 +64,33 @@ void testWriteUint8ListAndView() {
}
+void testWriteUint8ClampedListAndView() {
+ ReceivePort port = new ReceivePort();
+ Uint8List list = new Uint8ClampedList(8);
+ for (int i = 0; i < 8; i++) list[i] = i;
+ var view = new Uint8ClampedList.view(list.buffer, 2, 4);
+
+ new Directory('').createTemp().then((temp) {
+ var file = new File("${temp.path}/test");
+ file.open(mode: FileMode.WRITE).then((raf) {
+ return raf.writeList(list, 0, 8);
+ }).then((raf) {
+ return raf.writeList(view, 0, 4);
+ }).then((raf) {
+ return raf.close();
+ }).then((_) {
+ var expected = [];
+ expected.addAll(list);
+ expected.addAll(view);
+ var content = file.readAsBytesSync();
+ Expect.listEquals(expected, content);
+ temp.deleteSync(recursive: true);
+ port.close();
+ });
+ });
+}
+
+
void testWriteInt16ListAndView() {
ReceivePort port = new ReceivePort();
var list = new Int16List(8);
@@ -126,9 +153,238 @@ void testWriteUint16ListAndView() {
}
+void testWriteInt32ListAndView() {
+ ReceivePort port = new ReceivePort();
+ var list = new Int32List(8);
+ for (int i = 0; i < 8; i++) list[i] = i;
+ var view = new Int32List.view(list.buffer, 2, 4);
+
+ new Directory('').createTemp().then((temp) {
+ var file = new File("${temp.path}/test");
+ file.open(mode: FileMode.WRITE).then((raf) {
+ return raf.writeList(list, 0, 8);
+ }).then((raf) {
+ return raf.writeList(view, 0, 4);
+ }).then((raf) {
+ return raf.close();
+ }).then((_) {
+ var expected = [];
+ expected.addAll(list);
+ expected.addAll(view);
+ var content = file.readAsBytesSync();
+ var typed_data_content = new Uint8List(content.length);
+ for (int i = 0; i < content.length; i++) {
+ typed_data_content[i] = content[i];
+ }
+ Expect.listEquals(expected, new Int32List.view(typed_data_content));
+ temp.deleteSync(recursive: true);
+ port.close();
+ });
+ });
+}
+
+
+void testWriteUint32ListAndView() {
+ ReceivePort port = new ReceivePort();
+ var list = new Uint32List(8);
+ for (int i = 0; i < 8; i++) list[i] = i;
+ var view = new Uint32List.view(list.buffer, 2, 4);
+
+ new Directory('').createTemp().then((temp) {
+ var file = new File("${temp.path}/test");
+ file.open(mode: FileMode.WRITE).then((raf) {
+ return raf.writeList(list, 0, 8);
+ }).then((raf) {
+ return raf.writeList(view, 0, 4);
+ }).then((raf) {
+ return raf.close();
+ }).then((_) {
+ var expected = [];
+ expected.addAll(list);
+ expected.addAll(view);
+ var content = file.readAsBytesSync();
+ var typed_data_content = new Uint8List(content.length);
+ for (int i = 0; i < content.length; i++) {
+ typed_data_content[i] = content[i];
+ }
+ Expect.listEquals(expected, new Uint32List.view(typed_data_content));
+ temp.deleteSync(recursive: true);
+ port.close();
+ });
+ });
+}
+
+
+void testWriteInt64ListAndView() {
+ ReceivePort port = new ReceivePort();
+ var list = new Int64List(8);
+ for (int i = 0; i < 8; i++) list[i] = i;
+ var view = new Int64List.view(list.buffer, 2, 4);
+
+ new Directory('').createTemp().then((temp) {
+ var file = new File("${temp.path}/test");
+ file.open(mode: FileMode.WRITE).then((raf) {
+ return raf.writeList(list, 0, 8);
+ }).then((raf) {
+ // return raf.writeList(view, 0, 4);
+ //}).then((raf) {
+ return raf.close();
+ }).then((_) {
+ var expected = [];
+ expected.addAll(list);
+ //expected.addAll(view);
+ var content = file.readAsBytesSync();
+ var typed_data_content = new Uint8List(content.length);
+ for (int i = 0; i < content.length; i++) {
+ typed_data_content[i] = content[i];
+ }
+ Expect.listEquals(expected, new Int64List.view(typed_data_content));
+ temp.deleteSync(recursive: true);
+ port.close();
+ });
+ });
+}
+
+
+void testWriteUint64ListAndView() {
+ ReceivePort port = new ReceivePort();
+ var list = new Uint64List(8);
+ for (int i = 0; i < 8; i++) list[i] = i;
+ var view = new Uint64List.view(list.buffer, 2, 4);
+
+ new Directory('').createTemp().then((temp) {
+ var file = new File("${temp.path}/test");
+ file.open(mode: FileMode.WRITE).then((raf) {
+ return raf.writeList(list, 0, 8);
+ }).then((raf) {
+ return raf.writeList(view, 0, 4);
+ }).then((raf) {
+ return raf.close();
+ }).then((_) {
+ var expected = [];
+ expected.addAll(list);
+ expected.addAll(view);
+ var content = file.readAsBytesSync();
+ var typed_data_content = new Uint8List(content.length);
+ for (int i = 0; i < content.length; i++) {
+ typed_data_content[i] = content[i];
+ }
+ Expect.listEquals(expected, new Uint64List.view(typed_data_content));
+ temp.deleteSync(recursive: true);
+ port.close();
+ });
+ });
+}
+
+
+void testWriteByteData() {
+ ReceivePort port = new ReceivePort();
+ var list = new ByteData(8);
+ for (int i = 0; i < 8; i++) list.setUint8(i, i);
+ var view = new ByteData.view(list.buffer, 2, 4);
+
+ new Directory('').createTemp().then((temp) {
+ var file = new File("${temp.path}/test");
+ file.open(mode: FileMode.WRITE).then((raf) {
+ return raf.writeList(list, 0, 8);
+ }).then((raf) {
+ return raf.writeList(view, 0, 4);
+ }).then((raf) {
+ return raf.close();
+ }).then((_) {
+ var expected = [];
+ for (int i = 0; i < list.lengthInBytes; i++) {
+ expected.add(list.getUint8(i));
+ }
+ for (int i = 0; i < view.lengthInBytes; i++) {
+ expected.add(view.getUint8(i));
+ }
+ var content = file.readAsBytesSync();
+ var typed_data_content = new Uint8List(content.length);
+ for (int i = 0; i < content.length; i++) {
+ typed_data_content[i] = content[i];
+ }
+ Expect.listEquals(expected, new Uint8List.view(typed_data_content));
+ temp.deleteSync(recursive: true);
+ port.close();
+ });
+ });
+}
+
+
+void testWriteFloat32ListAndView() {
+ ReceivePort port = new ReceivePort();
+ var list = new Float32List(8);
+ for (int i = 0; i < 8; i++) list[i] = 1.1 * i;
+ var view = new Float32List.view(list.buffer, 2, 4);
+
+ new Directory('').createTemp().then((temp) {
+ var file = new File("${temp.path}/test");
+ file.open(mode: FileMode.WRITE).then((raf) {
+ return raf.writeList(list, 0, 8);
+ }).then((raf) {
+ return raf.writeList(view, 0, 4);
+ }).then((raf) {
+ return raf.close();
+ }).then((_) {
+ var expected = [];
+ expected.addAll(list);
+ expected.addAll(view);
+ var content = file.readAsBytesSync();
+ var typed_data_content = new Uint8List(content.length);
+ for (int i = 0; i < content.length; i++) {
+ typed_data_content[i] = content[i];
+ }
+ Expect.listEquals(expected, new Float32List.view(typed_data_content));
+ temp.deleteSync(recursive: true);
+ port.close();
+ });
+ });
+}
+
+
+void testWriteFloat64ListAndView() {
+ ReceivePort port = new ReceivePort();
+ var list = new Float64List(8);
+ for (int i = 0; i < 8; i++) list[i] = 1.1 * i;
+ var view = new Float64List.view(list.buffer, 2, 4);
+
+ new Directory('').createTemp().then((temp) {
+ var file = new File("${temp.path}/test");
+ file.open(mode: FileMode.WRITE).then((raf) {
+ return raf.writeList(list, 0, 8);
+ }).then((raf) {
+ return raf.writeList(view, 0, 4);
+ }).then((raf) {
+ return raf.close();
+ }).then((_) {
+ var expected = [];
+ expected.addAll(list);
+ expected.addAll(view);
+ var content = file.readAsBytesSync();
+ var typed_data_content = new Uint8List(content.length);
+ for (int i = 0; i < content.length; i++) {
+ typed_data_content[i] = content[i];
+ }
+ Expect.listEquals(expected, new Float64List.view(typed_data_content));
+ temp.deleteSync(recursive: true);
+ port.close();
+ });
+ });
+}
+
+
main() {
testWriteInt8ListAndView();
testWriteUint8ListAndView();
+ testWriteUint8ClampedListAndView();
testWriteInt16ListAndView();
testWriteUint16ListAndView();
+ testWriteInt32ListAndView();
+ testWriteUint32ListAndView();
+ testWriteInt64ListAndView();
+ testWriteUint64ListAndView();
+ testWriteByteData();
+ testWriteFloat32ListAndView();
+ testWriteFloat64ListAndView();
}
« sdk/lib/io/file_impl.dart ('K') | « sdk/lib/io/file_impl.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698