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

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

Issue 211283004: Support Types in instance-ref/instance-view (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: gen js Created 6 years, 9 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/service.cc ('k') | no next file » | 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 "include/dart_debugger_api.h" 5 #include "include/dart_debugger_api.h"
6 #include "vm/dart_api_impl.h" 6 #include "vm/dart_api_impl.h"
7 #include "vm/dart_entry.h" 7 #include "vm/dart_entry.h"
8 #include "vm/debugger.h" 8 #include "vm/debugger.h"
9 #include "vm/globals.h" 9 #include "vm/globals.h"
10 #include "vm/message_handler.h" 10 #include "vm/message_handler.h"
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 va_list args2; 105 va_list args2;
106 va_start(args2, fmt); 106 va_start(args2, fmt);
107 OS::VSNPrint(buffer, (len + 1), fmt, args2); 107 OS::VSNPrint(buffer, (len + 1), fmt, args2);
108 va_end(args2); 108 va_end(args2);
109 109
110 return Eval(lib, buffer); 110 return Eval(lib, buffer);
111 } 111 }
112 112
113 113
114 // Search for the formatted string in buff. 114 // Search for the formatted string in buff.
115 //
116 // TODO(turnidge): This function obscures the line number of failing
117 // EXPECTs. Rework this.
115 static void ExpectSubstringF(const char* buff, const char* fmt, ...) { 118 static void ExpectSubstringF(const char* buff, const char* fmt, ...) {
116 Isolate* isolate = Isolate::Current(); 119 Isolate* isolate = Isolate::Current();
117 120
118 va_list args; 121 va_list args;
119 va_start(args, fmt); 122 va_start(args, fmt);
120 intptr_t len = OS::VSNPrint(NULL, 0, fmt, args); 123 intptr_t len = OS::VSNPrint(NULL, 0, fmt, args);
121 va_end(args); 124 va_end(args);
122 125
123 char* buffer = isolate->current_zone()->Alloc<char>(len + 1); 126 char* buffer = isolate->current_zone()->Alloc<char>(len + 1);
124 va_list args2; 127 va_list args2;
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 "\"user_name\":\"int\"},\"preview\":\"123\"}", 452 "\"user_name\":\"int\"},\"preview\":\"123\"}",
450 handler.msg()); 453 handler.msg());
451 454
452 // object id ring / valid 455 // object id ring / valid
453 service_msg = Eval(lib, "[port, ['objects', '$validId'], [], []]"); 456 service_msg = Eval(lib, "[port, ['objects', '$validId'], [], []]");
454 Service::HandleIsolateMessage(isolate, service_msg); 457 Service::HandleIsolateMessage(isolate, service_msg);
455 handler.HandleNextMessage(); 458 handler.HandleNextMessage();
456 handler.filterMsg("name"); 459 handler.filterMsg("name");
457 handler.filterMsg("size"); 460 handler.filterMsg("size");
458 EXPECT_STREQ( 461 EXPECT_STREQ(
459 "{\"type\":\"String\",\"id\":\"objects\\/1\"," 462 "{\"type\":\"String\","
460 "\"class\":{\"type\":\"@Class\",\"id\":\"classes\\/60\"," 463 "\"class\":{\"type\":\"@Class\",\"id\":\"classes\\/60\","
461 "\"user_name\":\"String\"},\"preview\":\"\\\"value\\\"\"," 464 "\"user_name\":\"String\"},\"fields\":[],"
462 "\"fields\":[],}", 465 "\"id\":\"objects\\/1\",\"preview\":\"\\\"value\\\"\"}",
463 handler.msg()); 466 handler.msg());
464 467
465 // object id ring / invalid => expired 468 // object id ring / invalid => expired
466 service_msg = Eval(lib, "[port, ['objects', '99999999'], [], []]"); 469 service_msg = Eval(lib, "[port, ['objects', '99999999'], [], []]");
467 Service::HandleIsolateMessage(isolate, service_msg); 470 Service::HandleIsolateMessage(isolate, service_msg);
468 handler.HandleNextMessage(); 471 handler.HandleNextMessage();
469 handler.filterMsg("name"); 472 handler.filterMsg("name");
470 EXPECT_STREQ( 473 EXPECT_STREQ(
471 "{\"type\":\"Null\",\"id\":\"objects\\/expired\"," 474 "{\"type\":\"Null\",\"id\":\"objects\\/expired\","
472 "\"preview\":\"<expired>\"}", 475 "\"preview\":\"<expired>\"}",
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 EXPECT_VALID(port); 777 EXPECT_VALID(port);
775 EXPECT_VALID(Dart_SetField(h_lib, NewString("port"), port)); 778 EXPECT_VALID(Dart_SetField(h_lib, NewString("port"), port));
776 779
777 Instance& service_msg = Instance::Handle(); 780 Instance& service_msg = Instance::Handle();
778 781
779 // Request the class A over the service. 782 // Request the class A over the service.
780 service_msg = EvalF(h_lib, "[port, ['classes', '%" Pd "'], [], []]", cid); 783 service_msg = EvalF(h_lib, "[port, ['classes', '%" Pd "'], [], []]", cid);
781 Service::HandleIsolateMessage(isolate, service_msg); 784 Service::HandleIsolateMessage(isolate, service_msg);
782 handler.HandleNextMessage(); 785 handler.HandleNextMessage();
783 EXPECT_SUBSTRING("\"type\":\"Class\"", handler.msg()); 786 EXPECT_SUBSTRING("\"type\":\"Class\"", handler.msg());
787 EXPECT_SUBSTRING("\"name\":\"A\"", handler.msg());
784 ExpectSubstringF(handler.msg(), 788 ExpectSubstringF(handler.msg(),
785 "\"id\":\"classes\\/%" Pd "\",\"name\":\"A\",", cid); 789 "\"id\":\"classes\\/%" Pd "\"", cid);
786 790
787 // Request canonical type 0 from class A. 791 // Request canonical type 0 from class A.
788 service_msg = EvalF(h_lib, "[port, ['classes', '%" Pd "', 'types', '0']," 792 service_msg = EvalF(h_lib, "[port, ['classes', '%" Pd "', 'types', '0'],"
789 "[], []]", cid); 793 "[], []]", cid);
790 Service::HandleIsolateMessage(isolate, service_msg); 794 Service::HandleIsolateMessage(isolate, service_msg);
791 handler.HandleNextMessage(); 795 handler.HandleNextMessage();
792 EXPECT_SUBSTRING("\"type\":\"Type\"", handler.msg()); 796 EXPECT_SUBSTRING("\"type\":\"Type\"", handler.msg());
797 EXPECT_SUBSTRING("\"name\":\"A<bool>\"", handler.msg());
793 ExpectSubstringF(handler.msg(), 798 ExpectSubstringF(handler.msg(),
794 "\"id\":\"classes\\/%" Pd "\\/types\\/0\"," 799 "\"id\":\"classes\\/%" Pd "\\/types\\/0\"", cid);
795 "\"name\":\"A<bool>\",", cid);
796 800
797 // Request canonical type 1 from class A. 801 // Request canonical type 1 from class A.
798 service_msg = EvalF(h_lib, "[port, ['classes', '%" Pd "', 'types', '1']," 802 service_msg = EvalF(h_lib, "[port, ['classes', '%" Pd "', 'types', '1'],"
799 "[], []]", cid); 803 "[], []]", cid);
800 Service::HandleIsolateMessage(isolate, service_msg); 804 Service::HandleIsolateMessage(isolate, service_msg);
801 handler.HandleNextMessage(); 805 handler.HandleNextMessage();
802 EXPECT_SUBSTRING("\"type\":\"Type\"", handler.msg()); 806 EXPECT_SUBSTRING("\"type\":\"Type\"", handler.msg());
807 EXPECT_SUBSTRING("\"name\":\"A<A<bool>>\"", handler.msg());
803 ExpectSubstringF(handler.msg(), 808 ExpectSubstringF(handler.msg(),
804 "\"id\":\"classes\\/%" Pd "\\/types\\/1\"," 809 "\"id\":\"classes\\/%" Pd "\\/types\\/1\"", cid);
805 "\"name\":\"A<A<bool>>\",", cid);
806 810
807 // Request for non-existent canonical type from class A. 811 // Request for non-existent canonical type from class A.
808 service_msg = EvalF(h_lib, "[port, ['classes', '%" Pd "', 'types', '42']," 812 service_msg = EvalF(h_lib, "[port, ['classes', '%" Pd "', 'types', '42'],"
809 "[], []]", cid); 813 "[], []]", cid);
810 Service::HandleIsolateMessage(isolate, service_msg); 814 Service::HandleIsolateMessage(isolate, service_msg);
811 handler.HandleNextMessage(); 815 handler.HandleNextMessage();
812 ExpectSubstringF(handler.msg(), 816 ExpectSubstringF(handler.msg(),
813 "{\"type\":\"Error\",\"id\":\"\"," 817 "{\"type\":\"Error\",\"id\":\"\","
814 "\"message\":\"Canonical type 42 not found\"" 818 "\"message\":\"Canonical type 42 not found\""
815 ",\"request\":" 819 ",\"request\":"
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after
1283 EXPECT_SUBSTRING("\"type\":\"Profile\"", handler.msg()); 1287 EXPECT_SUBSTRING("\"type\":\"Profile\"", handler.msg());
1284 1288
1285 service_msg = Eval(h_lib, "[port, ['profile'], ['tags'], ['hidden']]"); 1289 service_msg = Eval(h_lib, "[port, ['profile'], ['tags'], ['hidden']]");
1286 Service::HandleIsolateMessage(isolate, service_msg); 1290 Service::HandleIsolateMessage(isolate, service_msg);
1287 handler.HandleNextMessage(); 1291 handler.HandleNextMessage();
1288 // Expect error. 1292 // Expect error.
1289 EXPECT_SUBSTRING("\"type\":\"Error\"", handler.msg()); 1293 EXPECT_SUBSTRING("\"type\":\"Error\"", handler.msg());
1290 } 1294 }
1291 1295
1292 } // namespace dart 1296 } // namespace dart
OLDNEW
« 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