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

Unified Diff: runtime/vm/service_test.cc

Issue 299143007: Show flags in Observatory. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: gen js + code review Created 6 years, 7 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
« no previous file with comments | « runtime/vm/service.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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++.
« no previous file with comments | « runtime/vm/service.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698