| Index: runtime/vm/service_test.cc
|
| diff --git a/runtime/vm/service_test.cc b/runtime/vm/service_test.cc
|
| index e4f8f06fe368eee15279794fd27f53db3e0eb169..85398d615a90b0e3edb4661561d5abac626fb511 100644
|
| --- a/runtime/vm/service_test.cc
|
| +++ b/runtime/vm/service_test.cc
|
| @@ -18,6 +18,9 @@
|
|
|
| namespace dart {
|
|
|
| +// This flag is used in the Service_Flags test below.
|
| +DEFINE_FLAG(bool, service_testing_flag, false, "Comment");
|
| +
|
| class ServiceTestMessageHandler : public MessageHandler {
|
| public:
|
| ServiceTestMessageHandler() : _msg(NULL) {}
|
| @@ -1065,13 +1068,63 @@ TEST_CASE(Service_VM) {
|
| Service::HandleRootMessage(service_msg);
|
| handler.HandleNextMessage();
|
| EXPECT_SUBSTRING("\"type\":\"VM\",\"id\":\"vm\"", handler.msg());
|
| - EXPECT_SUBSTRING("\"architecture\"", handler.msg());
|
| + EXPECT_SUBSTRING("\"targetCPU\"", handler.msg());
|
| + EXPECT_SUBSTRING("\"hostCPU\"", handler.msg());
|
| EXPECT_SUBSTRING("\"version\"", handler.msg());
|
| EXPECT_SUBSTRING("\"uptime\"", handler.msg());
|
| EXPECT_SUBSTRING("\"isolates\"", handler.msg());
|
| }
|
|
|
|
|
| +TEST_CASE(Service_Flags) {
|
| + const char* kScript =
|
| + "var port;\n" // Set to our mock port by C++.
|
| + "\n"
|
| + "main() {\n"
|
| + "}";
|
| +
|
| + Isolate* isolate = Isolate::Current();
|
| + Dart_Handle lib = TestCase::LoadTestScript(kScript, NULL);
|
| + EXPECT_VALID(lib);
|
| +
|
| + // Build a mock message handler and wrap it in a dart port.
|
| + ServiceTestMessageHandler handler;
|
| + Dart_Port port_id = PortMap::CreatePort(&handler);
|
| + Dart_Handle port = Api::NewHandle(isolate, SendPort::New(port_id));
|
| + EXPECT_VALID(port);
|
| + EXPECT_VALID(Dart_SetField(lib, NewString("port"), port));
|
| +
|
| + Instance& service_msg = Instance::Handle();
|
| + service_msg = Eval(lib, "[port, ['flags'], [], []]");
|
| +
|
| + // Make sure we can get the FlagList.
|
| + Service::HandleRootMessage(service_msg);
|
| + handler.HandleNextMessage();
|
| + EXPECT_SUBSTRING("\"type\":\"FlagList\",\"id\":\"flags\"", handler.msg());
|
| + EXPECT_SUBSTRING(
|
| + "\"name\":\"service_testing_flag\",\"comment\":\"Comment\","
|
| + "\"flagType\":\"bool\",\"valueAsString\":\"false\"",
|
| + handler.msg());
|
| +
|
| + // Modify a flag through the vm service.
|
| + service_msg = Eval(lib,
|
| + "[port, ['flags', 'set'], "
|
| + "['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, "[port, ['flags'], [], []]");
|
| + Service::HandleRootMessage(service_msg);
|
| + handler.HandleNextMessage();
|
| + EXPECT_SUBSTRING(
|
| + "\"name\":\"service_testing_flag\",\"comment\":\"Comment\","
|
| + "\"flagType\":\"bool\",\"valueAsString\":\"true\"",
|
| + handler.msg());
|
| +}
|
| +
|
| +
|
| TEST_CASE(Service_Scripts) {
|
| const char* kScript =
|
| "var port;\n" // Set to our mock port by C++.
|
|
|