| Index: runtime/vm/service_test.cc
|
| diff --git a/runtime/vm/service_test.cc b/runtime/vm/service_test.cc
|
| index 17691b415fd2cbb7c552b98546a8153ecd9f82b1..1670e0d649d3fa995d3bdab8a079c1fa38e3a710 100644
|
| --- a/runtime/vm/service_test.cc
|
| +++ b/runtime/vm/service_test.cc
|
| @@ -89,7 +89,26 @@ class ServiceTestMessageHandler : public MessageHandler {
|
| };
|
|
|
|
|
| +static RawArray* EvalVM(Dart_Handle lib, const char* expr) {
|
| + Dart_Handle expr_val = Dart_EvaluateExpr(lib, NewString(expr));
|
| + EXPECT_VALID(expr_val);
|
| + Isolate* isolate = Isolate::Current();
|
| + const GrowableObjectArray& value =
|
| + Api::UnwrapGrowableObjectArrayHandle(isolate, expr_val);
|
| + const Array& result = Array::Handle(Array::MakeArray(value));
|
| + GrowableObjectArray& growable = GrowableObjectArray::Handle();
|
| + growable ^= result.At(3);
|
| + Array& array = Array::Handle(Array::MakeArray(growable));
|
| + result.SetAt(3, array);
|
| + growable ^= result.At(4);
|
| + array = Array::MakeArray(growable);
|
| + result.SetAt(4, array);
|
| + return result.raw();
|
| +}
|
| +
|
| +
|
| static RawArray* Eval(Dart_Handle lib, const char* expr) {
|
| + const String& dummy_isolate_id = String::Handle(String::New("isolateId"));
|
| Dart_Handle expr_val = Dart_EvaluateExpr(lib, NewString(expr));
|
| EXPECT_VALID(expr_val);
|
| Isolate* isolate = Isolate::Current();
|
| @@ -98,9 +117,13 @@ static RawArray* Eval(Dart_Handle lib, const char* expr) {
|
| const Array& result = Array::Handle(Array::MakeArray(value));
|
| GrowableObjectArray& growable = GrowableObjectArray::Handle();
|
| growable ^= result.At(3);
|
| + // Append dummy isolate id to parameter values.
|
| + growable.Add(dummy_isolate_id);
|
| Array& array = Array::Handle(Array::MakeArray(growable));
|
| result.SetAt(3, array);
|
| growable ^= result.At(4);
|
| + // Append dummy isolate id to parameter values.
|
| + growable.Add(dummy_isolate_id);
|
| array = Array::MakeArray(growable);
|
| result.SetAt(4, array);
|
| return result.raw();
|
| @@ -1052,7 +1075,7 @@ TEST_CASE(Service_VM) {
|
| EXPECT_VALID(Dart_SetField(lib, NewString("port"), port));
|
|
|
| Array& service_msg = Array::Handle();
|
| - service_msg = Eval(lib, "[0, port, 'getVM', [], []]");
|
| + service_msg = EvalVM(lib, "[0, port, 'getVM', [], []]");
|
|
|
| Service::HandleRootMessage(service_msg);
|
| handler.HandleNextMessage();
|
| @@ -1084,7 +1107,7 @@ TEST_CASE(Service_Flags) {
|
| EXPECT_VALID(Dart_SetField(lib, NewString("port"), port));
|
|
|
| Array& service_msg = Array::Handle();
|
| - service_msg = Eval(lib, "[0, port, 'getFlagList', [], []]");
|
| + service_msg = EvalVM(lib, "[0, port, 'getFlagList', [], []]");
|
|
|
| // Make sure we can get the FlagList.
|
| Service::HandleRootMessage(service_msg);
|
| @@ -1096,15 +1119,15 @@ TEST_CASE(Service_Flags) {
|
| handler.msg());
|
|
|
| // Modify a flag through the vm service.
|
| - service_msg = Eval(lib,
|
| - "[0, port, 'setFlag', "
|
| - "['name', 'value'], ['service_testing_flag', 'true']]");
|
| + service_msg = EvalVM(lib,
|
| + "[0, port, 'setFlag', "
|
| + "['name', 'value'], ['service_testing_flag', 'true']]");
|
| Service::HandleRootMessage(service_msg);
|
| handler.HandleNextMessage();
|
| EXPECT_SUBSTRING("Success", handler.msg());
|
|
|
| // Make sure that the flag changed.
|
| - service_msg = Eval(lib, "[0, port, 'getFlagList', [], []]");
|
| + service_msg = EvalVM(lib, "[0, port, 'getFlagList', [], []]");
|
| Service::HandleRootMessage(service_msg);
|
| handler.HandleNextMessage();
|
| EXPECT_SUBSTRING(
|
| @@ -1435,8 +1458,8 @@ TEST_CASE(Service_Profile) {
|
| service_msg = Eval(lib, "[0, port, 'getCpuProfile', [], []]");
|
| Service::HandleIsolateMessage(isolate, service_msg);
|
| handler.HandleNextMessage();
|
| - // Expect profile
|
| - EXPECT_SUBSTRING("\"type\":\"CpuProfile\"", handler.msg());
|
| + // Expect error (tags required).
|
| + EXPECT_SUBSTRING("\"type\":\"Error\"", handler.msg());
|
|
|
| service_msg =
|
| Eval(lib, "[0, port, 'getCpuProfile', ['tags'], ['None']]");
|
|
|