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

Unified Diff: runtime/vm/object_test.cc

Issue 542363003: Don't double-escape in strings in the VM Service, and don't use \u0000 to determine the string lengt (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 3 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/object_test.cc
diff --git a/runtime/vm/object_test.cc b/runtime/vm/object_test.cc
index e9e2dfc2809b319bdb588509fdfe4799d0f70cca..9af60af98593946329e0a15258c0e40db62ccb61 100644
--- a/runtime/vm/object_test.cc
+++ b/runtime/vm/object_test.cc
@@ -4111,71 +4111,6 @@ TEST_CASE(SpecialClassesHaveEmptyArrays) {
}
turnidge 2014/09/09 16:12:31 Could you add a direct unit test for ToCStringTrun
rmacnak 2014/09/09 21:00:23 Added.
-TEST_CASE(ToUserCString) {
- const char* kScriptChars =
- "var simple = 'simple';\n"
- "var escapes = 'stuff\\n\\r\\f\\b\\t\\v\\'\"\\$stuff';\n"
- "var uescapes = 'stuff\\u0001\\u0002stuff';\n"
- "var toolong = "
- "'01234567890123456789012345678901234567890123456789howdy';\n"
- "var toolong2 = "
- "'0123456789012345678901234567890123\\t567890123456789howdy';\n"
- "var toolong3 = "
- "'012345678901234567890123456789\\u0001567890123456789howdy';\n";
- Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
- EXPECT_VALID(lib);
-
- String& obj = String::Handle();
- Dart_Handle result;
-
- // Simple string.
- result = Dart_GetField(lib, NewString("simple"));
- EXPECT_VALID(result);
- obj ^= Api::UnwrapHandle(result);
- EXPECT_STREQ("\"simple\"", obj.ToUserCString(40));
-
- // Escaped chars.
- result = Dart_GetField(lib, NewString("escapes"));
- EXPECT_VALID(result);
- obj ^= Api::UnwrapHandle(result);
- EXPECT_STREQ("\"stuff\\n\\r\\f\\b\\t\\v'\\\"\\$stuff\"",
- obj.ToUserCString(40));
-
- // U-escaped chars.
- result = Dart_GetField(lib, NewString("uescapes"));
- EXPECT_VALID(result);
- obj ^= Api::UnwrapHandle(result);
- EXPECT_STREQ("\"stuff\\u0001\\u0002stuff\"", obj.ToUserCString(40));
-
- // Truncation.
- result = Dart_GetField(lib, NewString("toolong"));
- EXPECT_VALID(result);
- obj ^= Api::UnwrapHandle(result);
- EXPECT_STREQ("\"01234567890123456789012345678901234\"...",
- obj.ToUserCString(40));
-
- // Truncation, shorter.
- result = Dart_GetField(lib, NewString("toolong"));
- EXPECT_VALID(result);
- obj ^= Api::UnwrapHandle(result);
- EXPECT_STREQ("\"01234\"...", obj.ToUserCString(10));
-
- // Truncation, limit is in escape.
- result = Dart_GetField(lib, NewString("toolong2"));
- EXPECT_VALID(result);
- obj ^= Api::UnwrapHandle(result);
- EXPECT_STREQ("\"0123456789012345678901234567890123\"...",
- obj.ToUserCString(40));
-
- // Truncation, limit is in u-escape
- result = Dart_GetField(lib, NewString("toolong3"));
- EXPECT_VALID(result);
- obj ^= Api::UnwrapHandle(result);
- EXPECT_STREQ("\"012345678901234567890123456789\"...",
- obj.ToUserCString(40));
-}
-
-
class ObjectAccumulator : public ObjectVisitor {
public:
explicit ObjectAccumulator(GrowableArray<Object*>* objects)
@@ -4371,7 +4306,8 @@ TEST_CASE(PrintJSONPrimitives) {
"{\"type\":\"@String\","
"\"class\":{\"type\":\"@Class\",\"id\":\"\","
"\"name\":\"_OneByteString\",\"vmName\":\"\"},"
- "\"id\":\"\",\"valueAsString\":\"\\\"dw\\\"\"}",
+ "\"id\":\"\",\"valueAsString\":\"dw\","
+ "\"valueAsStringIsTruncated\":false}",
turnidge 2014/09/09 16:12:31 Omit if false
buffer);
}
// Array reference

Powered by Google App Engine
This is Rietveld 408576698