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

Side by Side Diff: runtime/vm/service.cc

Issue 1090293003: Kill service_test.cc tests in favor of dart tests for the service protocol. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: fix tests Created 5 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/vm/pages.cc ('k') | runtime/vm/service/service.idl » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/service.h" 5 #include "vm/service.h"
6 6
7 #include "include/dart_api.h" 7 #include "include/dart_api.h"
8 #include "platform/globals.h" 8 #include "platform/globals.h"
9 9
10 #include "vm/compiler.h" 10 #include "vm/compiler.h"
(...skipping 1585 matching lines...) Expand 10 before | Expand all | Expand 10 after
1596 intptr_t count = visitor.count(); 1596 intptr_t count = visitor.count();
1597 if (count < limit) { 1597 if (count < limit) {
1598 // Truncate the list using utility method for GrowableObjectArray. 1598 // Truncate the list using utility method for GrowableObjectArray.
1599 GrowableObjectArray& wrapper = GrowableObjectArray::Handle( 1599 GrowableObjectArray& wrapper = GrowableObjectArray::Handle(
1600 GrowableObjectArray::New(storage)); 1600 GrowableObjectArray::New(storage));
1601 wrapper.SetLength(count); 1601 wrapper.SetLength(count);
1602 storage = Array::MakeArray(wrapper); 1602 storage = Array::MakeArray(wrapper);
1603 } 1603 }
1604 JSONObject jsobj(js); 1604 JSONObject jsobj(js);
1605 jsobj.AddProperty("type", "InstanceSet"); 1605 jsobj.AddProperty("type", "InstanceSet");
1606 jsobj.AddProperty("id", "instance_set");
1607 jsobj.AddProperty("totalCount", count); 1606 jsobj.AddProperty("totalCount", count);
1608 jsobj.AddProperty("sampleCount", storage.Length()); 1607 {
1609 jsobj.AddProperty("sample", storage); 1608 JSONArray samples(&jsobj, "samples");
1609 for (int i = 0; i < storage.Length(); i++) {
1610 const Object& sample = Object::Handle(storage.At(i));
1611 samples.AddValue(Instance::Cast(sample));
1612 }
1613 }
1610 return true; 1614 return true;
1611 } 1615 }
1612 1616
1613 1617
1614 class LibraryCoverageFilter : public CoverageFilter { 1618 class LibraryCoverageFilter : public CoverageFilter {
1615 public: 1619 public:
1616 explicit LibraryCoverageFilter(const Library& lib) : lib_(lib) {} 1620 explicit LibraryCoverageFilter(const Library& lib) : lib_(lib) {}
1617 bool ShouldOutputCoverageFor(const Library& lib, 1621 bool ShouldOutputCoverageFor(const Library& lib,
1618 const Script& script, 1622 const Script& script,
1619 const Class& cls, 1623 const Class& cls,
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
1804 if (bpt == NULL) { 1808 if (bpt == NULL) {
1805 fprintf(stderr, "ERROR1"); 1809 fprintf(stderr, "ERROR1");
1806 PrintInvalidParamError(js, "breakpointId"); 1810 PrintInvalidParamError(js, "breakpointId");
1807 return true; 1811 return true;
1808 } 1812 }
1809 isolate->debugger()->RemoveBreakpoint(bpt->id()); 1813 isolate->debugger()->RemoveBreakpoint(bpt->id());
1810 1814
1811 // TODO(turnidge): Consider whether the 'Success' type is proper. 1815 // TODO(turnidge): Consider whether the 'Success' type is proper.
1812 JSONObject jsobj(js); 1816 JSONObject jsobj(js);
1813 jsobj.AddProperty("type", "Success"); 1817 jsobj.AddProperty("type", "Success");
1814 jsobj.AddProperty("id", "");
1815 return true; 1818 return true;
1816 } 1819 }
1817 1820
1818 1821
1819 static RawClass* GetMetricsClass(Isolate* isolate) { 1822 static RawClass* GetMetricsClass(Isolate* isolate) {
1820 const Library& prof_lib = 1823 const Library& prof_lib =
1821 Library::Handle(isolate, Library::ProfilerLibrary()); 1824 Library::Handle(isolate, Library::ProfilerLibrary());
1822 ASSERT(!prof_lib.IsNull()); 1825 ASSERT(!prof_lib.IsNull());
1823 const String& metrics_cls_name = 1826 const String& metrics_cls_name =
1824 String::Handle(isolate, String::New("Metrics")); 1827 String::Handle(isolate, String::New("Metrics"));
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
2002 NULL, 2005 NULL,
2003 }; 2006 };
2004 2007
2005 2008
2006 static bool Resume(Isolate* isolate, JSONStream* js) { 2009 static bool Resume(Isolate* isolate, JSONStream* js) {
2007 const char* step_param = js->LookupParam("step"); 2010 const char* step_param = js->LookupParam("step");
2008 if (isolate->message_handler()->paused_on_start()) { 2011 if (isolate->message_handler()->paused_on_start()) {
2009 isolate->message_handler()->set_pause_on_start(false); 2012 isolate->message_handler()->set_pause_on_start(false);
2010 JSONObject jsobj(js); 2013 JSONObject jsobj(js);
2011 jsobj.AddProperty("type", "Success"); 2014 jsobj.AddProperty("type", "Success");
2012 jsobj.AddProperty("id", "");
2013 { 2015 {
2014 ServiceEvent event(isolate, ServiceEvent::kResume); 2016 ServiceEvent event(isolate, ServiceEvent::kResume);
2015 Service::HandleEvent(&event); 2017 Service::HandleEvent(&event);
2016 } 2018 }
2017 return true; 2019 return true;
2018 } 2020 }
2019 if (isolate->message_handler()->paused_on_exit()) { 2021 if (isolate->message_handler()->paused_on_exit()) {
2020 isolate->message_handler()->set_pause_on_exit(false); 2022 isolate->message_handler()->set_pause_on_exit(false);
2021 JSONObject jsobj(js); 2023 JSONObject jsobj(js);
2022 jsobj.AddProperty("type", "Success"); 2024 jsobj.AddProperty("type", "Success");
2023 jsobj.AddProperty("id", "");
2024 // We don't send a resume event because we will be exiting. 2025 // We don't send a resume event because we will be exiting.
2025 return true; 2026 return true;
2026 } 2027 }
2027 if (isolate->debugger()->PauseEvent() != NULL) { 2028 if (isolate->debugger()->PauseEvent() != NULL) {
2028 if (step_param != NULL) { 2029 if (step_param != NULL) {
2029 if (strcmp(step_param, "into") == 0) { 2030 if (strcmp(step_param, "into") == 0) {
2030 isolate->debugger()->SetSingleStep(); 2031 isolate->debugger()->SetSingleStep();
2031 } else if (strcmp(step_param, "over") == 0) { 2032 } else if (strcmp(step_param, "over") == 0) {
2032 isolate->debugger()->SetStepOver(); 2033 isolate->debugger()->SetStepOver();
2033 } else if (strcmp(step_param, "out") == 0) { 2034 } else if (strcmp(step_param, "out") == 0) {
2034 isolate->debugger()->SetStepOut(); 2035 isolate->debugger()->SetStepOut();
2035 } else { 2036 } else {
2036 PrintInvalidParamError(js, "step"); 2037 PrintInvalidParamError(js, "step");
2037 return true; 2038 return true;
2038 } 2039 }
2039 } 2040 }
2040 isolate->Resume(); 2041 isolate->Resume();
2041 JSONObject jsobj(js); 2042 JSONObject jsobj(js);
2042 jsobj.AddProperty("type", "Success"); 2043 jsobj.AddProperty("type", "Success");
2043 jsobj.AddProperty("id", "");
2044 return true; 2044 return true;
2045 } 2045 }
2046 2046
2047 PrintError(js, "VM was not paused"); 2047 PrintError(js, "VM was not paused");
2048 return true; 2048 return true;
2049 } 2049 }
2050 2050
2051 2051
2052 static const MethodParameter* pause_params[] = { 2052 static const MethodParameter* pause_params[] = {
2053 ISOLATE_PARAMETER, 2053 ISOLATE_PARAMETER,
2054 NULL, 2054 NULL,
2055 }; 2055 };
2056 2056
2057 2057
2058 static bool Pause(Isolate* isolate, JSONStream* js) { 2058 static bool Pause(Isolate* isolate, JSONStream* js) {
2059 // TODO(turnidge): Don't double-interrupt the isolate here. 2059 // TODO(turnidge): Don't double-interrupt the isolate here.
2060 isolate->ScheduleInterrupts(Isolate::kApiInterrupt); 2060 isolate->ScheduleInterrupts(Isolate::kApiInterrupt);
2061 JSONObject jsobj(js); 2061 JSONObject jsobj(js);
2062 jsobj.AddProperty("type", "Success"); 2062 jsobj.AddProperty("type", "Success");
2063 jsobj.AddProperty("id", "");
2064 return true; 2063 return true;
2065 } 2064 }
2066 2065
2067 2066
2068 static const MethodParameter* get_tag_profile_params[] = { 2067 static const MethodParameter* get_tag_profile_params[] = {
2069 ISOLATE_PARAMETER, 2068 ISOLATE_PARAMETER,
2070 NULL, 2069 NULL,
2071 }; 2070 };
2072 2071
2073 2072
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
2253 PrintInvalidParamError(js, "address"); 2252 PrintInvalidParamError(js, "address");
2254 return true; 2253 return true;
2255 } 2254 }
2256 bool ref = js->HasParam("ref") && js->ParamIs("ref", "true"); 2255 bool ref = js->HasParam("ref") && js->ParamIs("ref", "true");
2257 Object& object = Object::Handle(isolate); 2256 Object& object = Object::Handle(isolate);
2258 { 2257 {
2259 NoSafepointScope no_safepoint; 2258 NoSafepointScope no_safepoint;
2260 ContainsAddressVisitor visitor(isolate, addr); 2259 ContainsAddressVisitor visitor(isolate, addr);
2261 object = isolate->heap()->FindObject(&visitor); 2260 object = isolate->heap()->FindObject(&visitor);
2262 } 2261 }
2263 object.PrintJSON(js, ref); 2262 if (object.IsNull()) {
2263 PrintSentinel(js, "objects/free", "<free>");
2264 } else {
2265 object.PrintJSON(js, ref);
2266 }
2264 return true; 2267 return true;
2265 } 2268 }
2266 2269
2267 2270
2268 static bool _RespondWithMalformedJson(Isolate* isolate, 2271 static bool _RespondWithMalformedJson(Isolate* isolate,
2269 JSONStream* js) { 2272 JSONStream* js) {
2270 JSONObject jsobj(js); 2273 JSONObject jsobj(js);
2271 jsobj.AddProperty("a", "a"); 2274 jsobj.AddProperty("a", "a");
2272 JSONObject jsobj1(js); 2275 JSONObject jsobj1(js);
2273 jsobj1.AddProperty("a", "a"); 2276 jsobj1.AddProperty("a", "a");
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
2454 } 2457 }
2455 const char* flag_value = js->LookupParam("value"); 2458 const char* flag_value = js->LookupParam("value");
2456 if (flag_value == NULL) { 2459 if (flag_value == NULL) {
2457 PrintMissingParamError(js, "value"); 2460 PrintMissingParamError(js, "value");
2458 return true; 2461 return true;
2459 } 2462 }
2460 JSONObject jsobj(js); 2463 JSONObject jsobj(js);
2461 const char* error = NULL; 2464 const char* error = NULL;
2462 if (Flags::SetFlag(flag_name, flag_value, &error)) { 2465 if (Flags::SetFlag(flag_name, flag_value, &error)) {
2463 jsobj.AddProperty("type", "Success"); 2466 jsobj.AddProperty("type", "Success");
2464 jsobj.AddProperty("id", "");
2465 return true; 2467 return true;
2466 } else { 2468 } else {
2467 jsobj.AddProperty("type", "Failure"); 2469 jsobj.AddProperty("type", "Error");
2468 jsobj.AddProperty("id", "");
2469 jsobj.AddProperty("message", error); 2470 jsobj.AddProperty("message", error);
2470 return true; 2471 return true;
2471 } 2472 }
2472 } 2473 }
2473 2474
2474 2475
2475 static const MethodParameter* set_name_params[] = { 2476 static const MethodParameter* set_name_params[] = {
2476 ISOLATE_PARAMETER, 2477 ISOLATE_PARAMETER,
2477 new MethodParameter("name", true), 2478 new MethodParameter("name", true),
2478 NULL, 2479 NULL,
(...skipping 24 matching lines...) Expand all
2503 { "addBreakpoint", AddBreakpoint, 2504 { "addBreakpoint", AddBreakpoint,
2504 add_breakpoint_params }, 2505 add_breakpoint_params },
2505 { "addBreakpointAtEntry", AddBreakpointAtEntry, 2506 { "addBreakpointAtEntry", AddBreakpointAtEntry,
2506 add_breakpoint_at_entry_params }, 2507 add_breakpoint_at_entry_params },
2507 { "clearCpuProfile", ClearCpuProfile, 2508 { "clearCpuProfile", ClearCpuProfile,
2508 clear_cpu_profile_params }, 2509 clear_cpu_profile_params },
2509 { "eval", Eval, 2510 { "eval", Eval,
2510 eval_params }, 2511 eval_params },
2511 { "evalFrame", EvalFrame, 2512 { "evalFrame", EvalFrame,
2512 eval_frame_params }, 2513 eval_frame_params },
2513 { "getAllocationProfile", GetAllocationProfile, 2514 { "_getAllocationProfile", GetAllocationProfile,
2514 get_allocation_profile_params }, 2515 get_allocation_profile_params },
2515 { "_getCallSiteData", GetCallSiteData, 2516 { "_getCallSiteData", GetCallSiteData,
2516 get_call_site_data_params }, 2517 get_call_site_data_params },
2517 { "getClassList", GetClassList, 2518 { "getClassList", GetClassList,
2518 get_class_list_params }, 2519 get_class_list_params },
2519 { "getCoverage", GetCoverage, 2520 { "getCoverage", GetCoverage,
2520 get_coverage_params }, 2521 get_coverage_params },
2521 { "getCpuProfile", GetCpuProfile, 2522 { "getCpuProfile", GetCpuProfile,
2522 get_cpu_profile_params }, 2523 get_cpu_profile_params },
2523 { "getFlagList", GetFlagList , 2524 { "getFlagList", GetFlagList ,
2524 get_flag_list_params }, 2525 get_flag_list_params },
2525 { "getHeapMap", GetHeapMap, 2526 { "getHeapMap", GetHeapMap,
2526 get_heap_map_params }, 2527 get_heap_map_params },
2527 { "getInboundReferences", GetInboundReferences, 2528 { "_getInboundReferences", GetInboundReferences,
2528 get_inbound_references_params }, 2529 get_inbound_references_params },
2529 { "getInstances", GetInstances, 2530 { "_getInstances", GetInstances,
2530 get_instances_params }, 2531 get_instances_params },
2531 { "getIsolate", GetIsolate, 2532 { "getIsolate", GetIsolate,
2532 get_isolate_params }, 2533 get_isolate_params },
2533 { "getIsolateMetric", GetIsolateMetric, 2534 { "getIsolateMetric", GetIsolateMetric,
2534 get_isolate_metric_params }, 2535 get_isolate_metric_params },
2535 { "getIsolateMetricList", GetIsolateMetricList, 2536 { "getIsolateMetricList", GetIsolateMetricList,
2536 get_isolate_metric_list_params }, 2537 get_isolate_metric_list_params },
2537 { "getObject", GetObject, 2538 { "getObject", GetObject,
2538 get_object_params }, 2539 get_object_params },
2539 { "getObjectByAddress", GetObjectByAddress, 2540 { "getObjectByAddress", GetObjectByAddress,
2540 get_object_by_address_params }, 2541 get_object_by_address_params },
2541 { "getRetainedSize", GetRetainedSize, 2542 { "_getRetainedSize", GetRetainedSize,
2542 get_retained_size_params }, 2543 get_retained_size_params },
2543 { "getRetainingPath", GetRetainingPath, 2544 { "_getRetainingPath", GetRetainingPath,
2544 get_retaining_path_params }, 2545 get_retaining_path_params },
2545 { "getStack", GetStack, 2546 { "getStack", GetStack,
2546 get_stack_params }, 2547 get_stack_params },
2547 { "getTagProfile", GetTagProfile, 2548 { "getTagProfile", GetTagProfile,
2548 get_tag_profile_params }, 2549 get_tag_profile_params },
2549 { "getTypeArgumentsList", GetTypeArgumentsList, 2550 { "getTypeArgumentsList", GetTypeArgumentsList,
2550 get_type_arguments_list_params }, 2551 get_type_arguments_list_params },
2551 { "getVM", GetVM, 2552 { "getVM", GetVM,
2552 get_vm_params }, 2553 get_vm_params },
2553 { "getVMMetric", GetVMMetric, 2554 { "getVMMetric", GetVMMetric,
(...skipping 22 matching lines...) Expand all
2576 ServiceMethodDescriptor& method = service_methods_[i]; 2577 ServiceMethodDescriptor& method = service_methods_[i];
2577 if (strcmp(method_name, method.name) == 0) { 2578 if (strcmp(method_name, method.name) == 0) {
2578 return &method; 2579 return &method;
2579 } 2580 }
2580 } 2581 }
2581 return NULL; 2582 return NULL;
2582 } 2583 }
2583 2584
2584 2585
2585 } // namespace dart 2586 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/pages.cc ('k') | runtime/vm/service/service.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698