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

Unified Diff: runtime/vm/object_test.cc

Issue 100603011: Add GrowableObjectArray::ToUserCString(). (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years 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 | « runtime/vm/object.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/object_test.cc
===================================================================
--- runtime/vm/object_test.cc (revision 31070)
+++ runtime/vm/object_test.cc (working copy)
@@ -3643,7 +3643,15 @@
"class _Cobra { }\n"
"var instance = new _Cobra();\n"
"\n"
+ "var empty_list = [];\n"
"var simple_list = [1,2,'otter'];\n"
+ "var nested_list = [[[[1]]],[2,'otter']];\n"
+ "var deeply_nested_list = [[[[[1]]]],[2,'otter']];\n"
+ "var toolong_list = "
+ "['0123456789','0123456789','0123456789','0123456789'];\n"
+ "var toolong2_list = [toolong];\n"
+ "var justenough_list = [0,1,2,3,4,0,1,2,3,4,0,1,2,3,4,0,1,2,99];"
+ "var toolong3_list = [0,1,2,3,4,0,1,2,3,4,0,1,2,3,4,0,1,2,3,4];"
"\n"
"var simple_map = {1: 2, 2: 'otter'};\n";
Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
@@ -3704,15 +3712,58 @@
obj ^= Api::UnwrapHandle(result);
EXPECT_STREQ("Instance of '_Cobra'", obj.ToUserCString());
+ // Empty list.
+ result = Dart_GetField(lib, NewString("empty_list"));
+ EXPECT_VALID(result);
+ obj ^= Api::UnwrapHandle(result);
+ EXPECT_STREQ("[]", obj.ToUserCString());
+
// Simple list.
- //
- // TODO(turnidge): Consider showing something like: [1, 2, 'otter'].
result = Dart_GetField(lib, NewString("simple_list"));
EXPECT_VALID(result);
obj ^= Api::UnwrapHandle(result);
- EXPECT_STREQ("Instance(length:3) of '_GrowableList'",
+ EXPECT_STREQ("[1,2,\"otter\"]", obj.ToUserCString());
+
+ // Nested list.
+ result = Dart_GetField(lib, NewString("nested_list"));
+ EXPECT_VALID(result);
+ obj ^= Api::UnwrapHandle(result);
+ EXPECT_STREQ("[[[[1]]],[2,\"otter\"]]", obj.ToUserCString());
+
+ // Deeply ested list.
+ result = Dart_GetField(lib, NewString("deeply_nested_list"));
+ EXPECT_VALID(result);
+ obj ^= Api::UnwrapHandle(result);
+ EXPECT_STREQ("[[[[[...]]]],[2,\"otter\"]]", obj.ToUserCString());
+
+ // Truncation.
+ result = Dart_GetField(lib, NewString("toolong_list"));
+ EXPECT_VALID(result);
+ obj ^= Api::UnwrapHandle(result);
+ EXPECT_STREQ("[\"0123456789\",\"012345\"...,...](length:4)",
obj.ToUserCString());
+ // More truncation.
+ result = Dart_GetField(lib, NewString("toolong2_list"));
+ EXPECT_VALID(result);
+ obj ^= Api::UnwrapHandle(result);
+ EXPECT_STREQ("[\"012345678901234567890123456789012\"...]",
+ obj.ToUserCString());
+
+ // Just fits.
+ result = Dart_GetField(lib, NewString("justenough_list"));
+ EXPECT_VALID(result);
+ obj ^= Api::UnwrapHandle(result);
+ EXPECT_STREQ("[0,1,2,3,4,0,1,2,3,4,0,1,2,3,4,0,1,2,99]",
+ obj.ToUserCString());
+
+ // Just too big, small elements.
+ result = Dart_GetField(lib, NewString("toolong3_list"));
+ EXPECT_VALID(result);
+ obj ^= Api::UnwrapHandle(result);
+ EXPECT_STREQ("[0,1,2,3,4,0,1,2,3,4,0,1,...](length:20)",
+ obj.ToUserCString());
+
// Simple map.
//
// TODO(turnidge): Consider showing something like: {1: 2, 2: 'otter'}
« no previous file with comments | « runtime/vm/object.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698