| Index: runtime/vm/service_test.cc
|
| ===================================================================
|
| --- runtime/vm/service_test.cc (revision 35753)
|
| +++ runtime/vm/service_test.cc (working copy)
|
| @@ -360,9 +360,14 @@
|
| EXPECT_VALID(Dart_SetField(lib, NewString("port"), port));
|
|
|
| ObjectIdRing* ring = isolate->object_id_ring();
|
| - const String& str = String::Handle(String::New("value"));
|
| - intptr_t str_id = ring->GetIdForObject(str.raw());
|
| - Dart_Handle valid_id = Dart_NewInteger(str_id);
|
| + const Array& arr = Array::Handle(Array::New(1, Heap::kOld));
|
| + {
|
| + HANDLESCOPE(isolate);
|
| + const String& str = String::Handle(String::New("value", Heap::kOld));
|
| + arr.SetAt(0, str);
|
| + }
|
| + intptr_t arr_id = ring->GetIdForObject(arr.raw());
|
| + Dart_Handle valid_id = Dart_NewInteger(arr_id);
|
| EXPECT_VALID(valid_id);
|
| EXPECT_VALID(Dart_SetField(lib, NewString("validId"), valid_id));
|
|
|
| @@ -461,10 +466,15 @@
|
| handler.filterMsg("size");
|
| handler.filterMsg("id");
|
| EXPECT_STREQ(
|
| - "{\"type\":\"String\","
|
| - "\"class\":{\"type\":\"@Class\","
|
| - "\"user_name\":\"_OneByteString\"},\"fields\":[],"
|
| - "\"valueAsString\":\"\\\"value\\\"\"}",
|
| + "{\"type\":\"Array\","
|
| + "\"class\":{\"type\":\"@Class\",\"user_name\":\"_List\"},"
|
| + "\"fields\":[],"
|
| + "\"length\":1,"
|
| + "\"elements\":[{"
|
| + "\"index\":0,"
|
| + "\"value\":{\"type\":\"@String\","
|
| + "\"class\":{\"type\":\"@Class\",\"user_name\":\"_OneByteString\"},"
|
| + "\"valueAsString\":\"\\\"value\\\"\"}}]}",
|
| handler.msg());
|
|
|
| // object id ring / invalid => expired
|
| @@ -542,6 +552,16 @@
|
| "\"request\":{\"arguments\":[\"objects\",\"int-123\",\"eval\",\"foo\"],"
|
| "\"option_keys\":[\"expr\"],\"option_values\":[\"this+99\"]}}",
|
| handler.msg());
|
| +
|
| + // Retained by single instance.
|
| + service_msg = Eval(lib,
|
| + "[port, ['objects', '$validId', 'retained'], [], []]");
|
| + Service::HandleIsolateMessage(isolate, service_msg);
|
| + handler.HandleNextMessage();
|
| + handler.filterMsg("name");
|
| + ExpectSubstringF(handler.msg(),
|
| + "\"id\":\"objects\\/int-%" Pd "\"",
|
| + arr.raw()->Size() + arr.At(0)->Size());
|
| }
|
|
|
|
|
|
|