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

Unified Diff: runtime/vm/snapshot_test.cc

Issue 14065006: Add support for typed data views on native threads (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addressed review commetns 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
Index: runtime/vm/snapshot_test.cc
diff --git a/runtime/vm/snapshot_test.cc b/runtime/vm/snapshot_test.cc
index c9a977b24d1e4927536fc3463c8e3f99e58503a8..b1e8af8f0486cf836ce64524afcf828b75db63d6 100644
--- a/runtime/vm/snapshot_test.cc
+++ b/runtime/vm/snapshot_test.cc
@@ -1800,12 +1800,21 @@ UNIT_TEST_CASE(DartGeneratedListMessagesWithBackref) {
" for (var i = 0; i < kArrayLength; i++) list[i] = d;\n"
" return list;\n"
"}\n"
- "getByteArrayList() {\n"
+ "getTypedDataList() {\n"
" var byte_array = new Uint8List(256);\n"
" var list = new List(kArrayLength);\n"
" for (var i = 0; i < kArrayLength; i++) list[i] = byte_array;\n"
" return list;\n"
"}\n"
+ "getTypedDataViewList() {\n"
+ " var uint8_list = new Uint8List(256);\n"
+ " uint8_list[64] = 1;\n"
+ " var uint8_list_view =\n"
+ " new Uint8List.view(uint8_list.buffer, 64, 128);\n"
+ " var list = new List(kArrayLength);\n"
+ " for (var i = 0; i < kArrayLength; i++) list[i] = uint8_list_view;\n"
+ " return list;\n"
+ "}\n"
"getMixedList() {\n"
" var list = new List(kArrayLength);\n"
" for (var i = 0; i < kArrayLength; i++) {\n"
@@ -1890,9 +1899,9 @@ UNIT_TEST_CASE(DartGeneratedListMessagesWithBackref) {
}
}
{
- // Generate a list of doubles from Dart code.
+ // Generate a list of Uint8Lists from Dart code.
ApiNativeScope scope;
- Dart_CObject* root = GetDeserializedDartMessage(lib, "getByteArrayList");
+ Dart_CObject* root = GetDeserializedDartMessage(lib, "getTypedDataList");
EXPECT_NOTNULL(root);
EXPECT_EQ(Dart_CObject::kArray, root->type);
EXPECT_EQ(kArrayLength, root->value.as_array.length);
@@ -1904,6 +1913,23 @@ UNIT_TEST_CASE(DartGeneratedListMessagesWithBackref) {
}
}
{
+ // Generate a list of Uint8List views from Dart code.
+ ApiNativeScope scope;
+ Dart_CObject* root =
+ GetDeserializedDartMessage(lib, "getTypedDataViewList");
+ EXPECT_NOTNULL(root);
+ EXPECT_EQ(Dart_CObject::kArray, root->type);
+ EXPECT_EQ(kArrayLength, root->value.as_array.length);
+ for (int i = 0; i < kArrayLength; i++) {
+ Dart_CObject* element = root->value.as_array.values[i];
+ EXPECT_EQ(root->value.as_array.values[0], element);
+ EXPECT_EQ(Dart_CObject::kUint8Array, element->type);
+ EXPECT_EQ(128, element->value.as_byte_array.length);
+ EXPECT_EQ(1, element->value.as_byte_array.values[0]);
+ EXPECT_EQ(0, element->value.as_byte_array.values[1]);
+ }
+ }
+ {
// Generate a list of objects of different types from Dart code.
ApiNativeScope scope;
Dart_CObject* root = GetDeserializedDartMessage(lib, "getMixedList");
@@ -1973,7 +1999,7 @@ UNIT_TEST_CASE(DartGeneratedArrayLiteralMessagesWithBackref) {
" list.add(3.14);;\n"
" return list;\n"
"}\n"
- "getByteArrayList() {\n"
+ "getTypedDataList() {\n"
" var byte_array = new Uint8List(256);\n"
" var list = [];\n"
" for (var i = 0; i < kArrayLength; i++) {\n"
@@ -1981,6 +2007,17 @@ UNIT_TEST_CASE(DartGeneratedArrayLiteralMessagesWithBackref) {
" }\n"
" return list;\n"
"}\n"
+ "getTypedDataViewList() {\n"
+ " var uint8_list = new Uint8List(256);\n"
+ " uint8_list[64] = 1;\n"
+ " var uint8_list_view =\n"
+ " new Uint8List.view(uint8_list.buffer, 64, 128);\n"
+ " var list = [];\n"
+ " for (var i = 0; i < kArrayLength; i++) {\n"
+ " list.add(uint8_list_view);\n"
+ " }\n"
+ " return list;\n"
+ "}\n"
"getMixedList() {\n"
" var list = [];\n"
" for (var i = 0; i < kArrayLength; i++) {\n"
@@ -2006,7 +2043,6 @@ UNIT_TEST_CASE(DartGeneratedArrayLiteralMessagesWithBackref) {
{
DARTSCOPE(isolate);
-
{
// Generate a list of strings from Dart code.
ApiNativeScope scope;
@@ -2065,9 +2101,9 @@ UNIT_TEST_CASE(DartGeneratedArrayLiteralMessagesWithBackref) {
}
}
{
- // Generate a list of doubles from Dart code.
+ // Generate a list of Uint8Lists from Dart code.
ApiNativeScope scope;
- Dart_CObject* root = GetDeserializedDartMessage(lib, "getByteArrayList");
+ Dart_CObject* root = GetDeserializedDartMessage(lib, "getTypedDataList");
EXPECT_NOTNULL(root);
EXPECT_EQ(Dart_CObject::kArray, root->type);
EXPECT_EQ(kArrayLength, root->value.as_array.length);
@@ -2079,6 +2115,23 @@ UNIT_TEST_CASE(DartGeneratedArrayLiteralMessagesWithBackref) {
}
}
{
+ // Generate a list of Uint8List views from Dart code.
+ ApiNativeScope scope;
+ Dart_CObject* root =
+ GetDeserializedDartMessage(lib, "getTypedDataViewList");
+ EXPECT_NOTNULL(root);
+ EXPECT_EQ(Dart_CObject::kArray, root->type);
+ EXPECT_EQ(kArrayLength, root->value.as_array.length);
+ for (int i = 0; i < kArrayLength; i++) {
+ Dart_CObject* element = root->value.as_array.values[i];
+ EXPECT_EQ(root->value.as_array.values[0], element);
+ EXPECT_EQ(Dart_CObject::kUint8Array, element->type);
+ EXPECT_EQ(128, element->value.as_byte_array.length);
+ EXPECT_EQ(1, element->value.as_byte_array.values[0]);
+ EXPECT_EQ(0, element->value.as_byte_array.values[1]);
+ }
+ }
+ {
// Generate a list of objects of different types from Dart code.
ApiNativeScope scope;
Dart_CObject* root = GetDeserializedDartMessage(lib, "getMixedList");

Powered by Google App Engine
This is Rietveld 408576698