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

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

Issue 2481873005: clang-format runtime/vm (Closed)
Patch Set: Merge Created 4 years, 1 month 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
« no previous file with comments | « runtime/vm/debugger_api_impl.cc ('k') | runtime/vm/debugger_arm.cc » ('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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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_mirrors_api.h" 5 #include "include/dart_mirrors_api.h"
6 #include "include/dart_tools_api.h" 6 #include "include/dart_tools_api.h"
7 #include "platform/assert.h" 7 #include "platform/assert.h"
8 #include "vm/dart_api_impl.h" 8 #include "vm/dart_api_impl.h"
9 #include "vm/lockers.h" 9 #include "vm/lockers.h"
10 #include "vm/unit_test.h" 10 #include "vm/unit_test.h"
11 11
12 namespace dart { 12 namespace dart {
13 13
14 DECLARE_FLAG(bool, trace_shutdown); 14 DECLARE_FLAG(bool, trace_shutdown);
15 15
16 #ifndef PRODUCT 16 #ifndef PRODUCT
17 17
18 static bool breakpoint_hit = false; 18 static bool breakpoint_hit = false;
19 static int breakpoint_hit_counter = 0; 19 static int breakpoint_hit_counter = 0;
20 static Dart_Handle script_lib = NULL; 20 static Dart_Handle script_lib = NULL;
21 21
22 static const bool verbose = true; 22 static const bool verbose = true;
23 23
24 static void LoadScript(const char* source) { 24 static void LoadScript(const char* source) {
25 script_lib = TestCase::LoadTestScript(source, NULL); 25 script_lib = TestCase::LoadTestScript(source, NULL);
26 EXPECT_VALID(script_lib); 26 EXPECT_VALID(script_lib);
27 } 27 }
28 28
29 29
30 static void SetBreakpointAtEntry(const char* cname, const char* fname) { 30 static void SetBreakpointAtEntry(const char* cname, const char* fname) {
31 ASSERT(script_lib != NULL); 31 ASSERT(script_lib != NULL);
32 ASSERT(!Dart_IsError(script_lib)); 32 ASSERT(!Dart_IsError(script_lib));
33 ASSERT(Dart_IsLibrary(script_lib)); 33 ASSERT(Dart_IsLibrary(script_lib));
34 Dart_Handle res = Dart_SetBreakpointAtEntry(script_lib, 34 Dart_Handle res =
35 NewString(cname), 35 Dart_SetBreakpointAtEntry(script_lib, NewString(cname), NewString(fname));
36 NewString(fname));
37 EXPECT(Dart_IsInteger(res)); 36 EXPECT(Dart_IsInteger(res));
38 } 37 }
39 38
40 39
41 static void DisableDebuggabilityOfDartColonLibraries() { 40 static void DisableDebuggabilityOfDartColonLibraries() {
42 const char* dart_colon = "dart:"; 41 const char* dart_colon = "dart:";
43 const intptr_t dart_colon_length = strlen(dart_colon); 42 const intptr_t dart_colon_length = strlen(dart_colon);
44 // Disable debuggability of all dart: libraries. 43 // Disable debuggability of all dart: libraries.
45 Dart_Handle library_ids = Dart_GetLibraryIds(); 44 Dart_Handle library_ids = Dart_GetLibraryIds();
46 intptr_t library_ids_length; 45 intptr_t library_ids_length;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 96
98 static char const* BreakpointInfo(Dart_StackTrace trace) { 97 static char const* BreakpointInfo(Dart_StackTrace trace) {
99 static char info_str[128]; 98 static char info_str[128];
100 Dart_ActivationFrame frame; 99 Dart_ActivationFrame frame;
101 Dart_Handle res = Dart_GetActivationFrame(trace, 0, &frame); 100 Dart_Handle res = Dart_GetActivationFrame(trace, 0, &frame);
102 EXPECT_TRUE(res); 101 EXPECT_TRUE(res);
103 Dart_Handle func_name; 102 Dart_Handle func_name;
104 Dart_Handle url; 103 Dart_Handle url;
105 intptr_t line_number = 0; 104 intptr_t line_number = 0;
106 intptr_t library_id = 0; 105 intptr_t library_id = 0;
107 res = Dart_ActivationFrameInfo( 106 res = Dart_ActivationFrameInfo(frame, &func_name, &url, &line_number,
108 frame, &func_name, &url, &line_number, &library_id); 107 &library_id);
109 EXPECT_TRUE(res); 108 EXPECT_TRUE(res);
110 OS::SNPrint(info_str, sizeof(info_str), "function %s (%s:%" Pd ")", 109 OS::SNPrint(info_str, sizeof(info_str), "function %s (%s:%" Pd ")",
111 ToCString(func_name), ToCString(url), line_number); 110 ToCString(func_name), ToCString(url), line_number);
112 return info_str; 111 return info_str;
113 } 112 }
114 113
115 114
116 static void PrintValue(Dart_Handle value, bool expand); 115 static void PrintValue(Dart_Handle value, bool expand);
117 116
118 117
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 Dart_Handle func_name; 381 Dart_Handle func_name;
383 382
384 char* buffer = stack_buffer; 383 char* buffer = stack_buffer;
385 int buffer_size = stack_buffer_size; 384 int buffer_size = stack_buffer_size;
386 385
387 intptr_t trace_len; 386 intptr_t trace_len;
388 EXPECT_VALID(Dart_StackTraceLength(trace, &trace_len)); 387 EXPECT_VALID(Dart_StackTraceLength(trace, &trace_len));
389 388
390 for (intptr_t frame_index = 0; frame_index < trace_len; frame_index++) { 389 for (intptr_t frame_index = 0; frame_index < trace_len; frame_index++) {
391 EXPECT_VALID(Dart_GetActivationFrame(trace, frame_index, &frame)); 390 EXPECT_VALID(Dart_GetActivationFrame(trace, frame_index, &frame));
392 EXPECT_VALID(Dart_ActivationFrameInfo(frame, &func_name, 391 EXPECT_VALID(Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL));
393 NULL, NULL, NULL)); 392 int pos = OS::SNPrint(buffer, buffer_size, "[%" Pd "] %s { ", frame_index,
394 int pos = OS::SNPrint(buffer, buffer_size, "[%" Pd "] %s { ", 393 ToCString(func_name));
395 frame_index, ToCString(func_name));
396 buffer += pos; 394 buffer += pos;
397 buffer_size -= pos; 395 buffer_size -= pos;
398 396
399 Dart_Handle locals = Dart_GetLocalVariables(frame); 397 Dart_Handle locals = Dart_GetLocalVariables(frame);
400 EXPECT_VALID(locals); 398 EXPECT_VALID(locals);
401 intptr_t list_length = 0; 399 intptr_t list_length = 0;
402 EXPECT_VALID(Dart_ListLength(locals, &list_length)); 400 EXPECT_VALID(Dart_ListLength(locals, &list_length));
403 401
404 for (intptr_t i = 0; i + 1 < list_length; i += 2) { 402 for (intptr_t i = 0; i + 1 < list_length; i += 2) {
405 Dart_Handle name = Dart_ListGetAt(locals, i); 403 Dart_Handle name = Dart_ListGetAt(locals, i);
406 EXPECT_VALID(name); 404 EXPECT_VALID(name);
407 EXPECT(Dart_IsString(name)); 405 EXPECT(Dart_IsString(name));
408 406
409 Dart_Handle value = Dart_ListGetAt(locals, i + 1); 407 Dart_Handle value = Dart_ListGetAt(locals, i + 1);
410 EXPECT_VALID(value); 408 EXPECT_VALID(value);
411 Dart_Handle value_str = Dart_ToString(value); 409 Dart_Handle value_str = Dart_ToString(value);
412 EXPECT_VALID(value_str); 410 EXPECT_VALID(value_str);
413 411
414 const char* name_cstr = NULL; 412 const char* name_cstr = NULL;
415 const char* value_cstr = NULL; 413 const char* value_cstr = NULL;
416 EXPECT_VALID(Dart_StringToCString(name, &name_cstr)); 414 EXPECT_VALID(Dart_StringToCString(name, &name_cstr));
417 EXPECT_VALID(Dart_StringToCString(value_str, &value_cstr)); 415 EXPECT_VALID(Dart_StringToCString(value_str, &value_cstr));
418 pos = OS::SNPrint(buffer, buffer_size, "%s = %s ", 416 pos = OS::SNPrint(buffer, buffer_size, "%s = %s ", name_cstr, value_cstr);
419 name_cstr, value_cstr);
420 buffer += pos; 417 buffer += pos;
421 buffer_size -= pos; 418 buffer_size -= pos;
422 } 419 }
423 pos = OS::SNPrint(buffer, buffer_size, "}\n"); 420 pos = OS::SNPrint(buffer, buffer_size, "}\n");
424 buffer += pos; 421 buffer += pos;
425 buffer_size -= pos; 422 buffer_size -= pos;
426 } 423 }
427 } 424 }
428 425
429 426
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 // Set up the breakpoint. 483 // Set up the breakpoint.
487 Dart_SetPausedEventHandler(InspectOptimizedStack_Breakpoint); 484 Dart_SetPausedEventHandler(InspectOptimizedStack_Breakpoint);
488 SetBreakpointAtEntry("", "breakpointNow"); 485 SetBreakpointAtEntry("", "breakpointNow");
489 486
490 // Run the code and inspect the stack. 487 // Run the code and inspect the stack.
491 stack_buffer[0] = '\0'; 488 stack_buffer[0] = '\0';
492 dart_args[0] = Dart_True(); 489 dart_args[0] = Dart_True();
493 dart_args[1] = Dart_NewInteger(kLowThreshold); 490 dart_args[1] = Dart_NewInteger(kLowThreshold);
494 EXPECT_VALID(Dart_Invoke(script_lib, NewString("test"), 2, dart_args)); 491 EXPECT_VALID(Dart_Invoke(script_lib, NewString("test"), 2, dart_args));
495 if (optimize) { 492 if (optimize) {
496 EXPECT_STREQ("[0] breakpointNow { }\n" 493 EXPECT_STREQ(
497 "[1] helper { a = 5 b = 99 stop = <optimized out> }\n" 494 "[0] breakpointNow { }\n"
498 "[2] anotherMiddleMan { one = <optimized out> " 495 "[1] helper { a = 5 b = 99 stop = <optimized out> }\n"
499 "two = <optimized out> stop = <optimized out> }\n" 496 "[2] anotherMiddleMan { one = <optimized out> "
500 "[3] middleMan { x = 5 limit = 100 stop = true value = 24255" 497 "two = <optimized out> stop = <optimized out> }\n"
501 " i = 99 }\n" 498 "[3] middleMan { x = 5 limit = 100 stop = true value = 24255"
502 "[4] test { stop = true limit = 100 }\n", 499 " i = 99 }\n"
503 stack_buffer); 500 "[4] test { stop = true limit = 100 }\n",
501 stack_buffer);
504 } else { 502 } else {
505 EXPECT_STREQ("[0] breakpointNow { }\n" 503 EXPECT_STREQ(
506 "[1] helper { a = 5 b = 99 stop = true }\n" 504 "[0] breakpointNow { }\n"
507 "[2] anotherMiddleMan { one = 5 two = 99 stop = true }\n" 505 "[1] helper { a = 5 b = 99 stop = true }\n"
508 "[3] middleMan { x = 5 limit = 100 stop = true value = 24255" 506 "[2] anotherMiddleMan { one = 5 two = 99 stop = true }\n"
509 " i = 99 }\n" 507 "[3] middleMan { x = 5 limit = 100 stop = true value = 24255"
510 "[4] test { stop = true limit = 100 }\n", 508 " i = 99 }\n"
511 stack_buffer); 509 "[4] test { stop = true limit = 100 }\n",
510 stack_buffer);
512 } 511 }
513 512
514 FLAG_optimization_counter_threshold = saved_threshold; 513 FLAG_optimization_counter_threshold = saved_threshold;
515 FLAG_use_osr = saved_osr; 514 FLAG_use_osr = saved_osr;
516 } 515 }
517 516
518 517
519 TEST_CASE(Debug_InspectStack_NotOptimized) { 518 TEST_CASE(Debug_InspectStack_NotOptimized) {
520 InspectStackTest(false); 519 InspectStackTest(false);
521 } 520 }
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
580 // Set up the breakpoint. 579 // Set up the breakpoint.
581 Dart_SetPausedEventHandler(InspectOptimizedStack_Breakpoint); 580 Dart_SetPausedEventHandler(InspectOptimizedStack_Breakpoint);
582 SetBreakpointAtEntry("", "breakpointNow"); 581 SetBreakpointAtEntry("", "breakpointNow");
583 582
584 // Run the code and inspect the stack. 583 // Run the code and inspect the stack.
585 stack_buffer[0] = '\0'; 584 stack_buffer[0] = '\0';
586 dart_args[0] = Dart_True(); 585 dart_args[0] = Dart_True();
587 dart_args[1] = Dart_NewInteger(kLowThreshold); 586 dart_args[1] = Dart_NewInteger(kLowThreshold);
588 EXPECT_VALID(Dart_Invoke(script_lib, NewString("test"), 2, dart_args)); 587 EXPECT_VALID(Dart_Invoke(script_lib, NewString("test"), 2, dart_args));
589 if (optimize) { 588 if (optimize) {
590 EXPECT_STREQ("[0] breakpointNow { }\n" 589 EXPECT_STREQ(
591 "[1] helper { a = 50 b = 99 stop = <optimized out> }\n" 590 "[0] breakpointNow { }\n"
592 "[2] <anonymous closure> { x = 5 i = 99 stop = true" 591 "[1] helper { a = 50 b = 99 stop = <optimized out> }\n"
593 " value = <optimized out> }\n" 592 "[2] <anonymous closure> { x = 5 i = 99 stop = true"
594 "[3] anotherMiddleMan { func = <optimized out> }\n" 593 " value = <optimized out> }\n"
595 "[4] middleMan { x = 5 limit = 100 stop = true" 594 "[3] anotherMiddleMan { func = <optimized out> }\n"
596 " value = 242550 i = 99 }\n" 595 "[4] middleMan { x = 5 limit = 100 stop = true"
597 "[5] test { stop = true limit = 100 }\n", 596 " value = 242550 i = 99 }\n"
598 stack_buffer); 597 "[5] test { stop = true limit = 100 }\n",
598 stack_buffer);
599 } else { 599 } else {
600 EXPECT_STREQ("[0] breakpointNow { }\n" 600 EXPECT_STREQ(
601 "[1] helper { a = 50 b = 99 stop = true }\n" 601 "[0] breakpointNow { }\n"
602 "[2] <anonymous closure> { x = 5 i = 99 stop = true" 602 "[1] helper { a = 50 b = 99 stop = true }\n"
603 " value = 10 }\n" 603 "[2] <anonymous closure> { x = 5 i = 99 stop = true"
604 "[3] anotherMiddleMan {" 604 " value = 10 }\n"
605 " func = Closure: (dynamic) => dynamic }\n" 605 "[3] anotherMiddleMan {"
606 "[4] middleMan { x = 5 limit = 100 stop = true" 606 " func = Closure: (dynamic) => dynamic }\n"
607 " value = 242550 i = 99 }\n" 607 "[4] middleMan { x = 5 limit = 100 stop = true"
608 "[5] test { stop = true limit = 100 }\n", 608 " value = 242550 i = 99 }\n"
609 stack_buffer); 609 "[5] test { stop = true limit = 100 }\n",
610 stack_buffer);
610 } 611 }
611 612
612 FLAG_optimization_counter_threshold = saved_threshold; 613 FLAG_optimization_counter_threshold = saved_threshold;
613 FLAG_use_osr = saved_osr; 614 FLAG_use_osr = saved_osr;
614 } 615 }
615 616
616 617
617 TEST_CASE(Debug_InspectStackWithClosure_NotOptimized) { 618 TEST_CASE(Debug_InspectStackWithClosure_NotOptimized) {
618 InspectStackWithClosureTest(false); 619 InspectStackWithClosureTest(false);
619 } 620 }
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
684 breakpoint_hit_counter = 0; 685 breakpoint_hit_counter = 0;
685 Dart_Handle retval = Invoke("main"); 686 Dart_Handle retval = Invoke("main");
686 EXPECT_VALID(retval); 687 EXPECT_VALID(retval);
687 EXPECT(Dart_IsInteger(retval)); 688 EXPECT(Dart_IsInteger(retval));
688 int64_t int_value = ToInt64(retval); 689 int64_t int_value = ToInt64(retval);
689 EXPECT_EQ(2, int_value); 690 EXPECT_EQ(2, int_value);
690 EXPECT(breakpoint_hit == true); 691 EXPECT(breakpoint_hit == true);
691 } 692 }
692 693
693 static const char* step_into_expected_bpts[] = { 694 static const char* step_into_expected_bpts[] = {
694 "main", // entry 695 "main", // entry
695 "main", // call foo 696 "main", // call foo
696 "foo", // entry 697 "foo", // entry
697 "foo", // call f1 698 "foo", // call f1
698 "f1", // entry 699 "f1", // entry
699 "f1", // return 700 "f1", // return
700 "foo", // call initializer 701 "foo", // call initializer
701 "foo", // call kvmk 702 "foo", // call kvmk
702 "X.kvmk", // entry 703 "X.kvmk", // entry
703 "X.kvmk", // call 704 "X.kvmk", // call
704 "f2", // entry 705 "f2", // entry
705 "f2", // return 706 "f2", // return
706 "X.kvmk", // call + 707 "X.kvmk", // call +
707 "X.kvmk", // return 708 "X.kvmk", // return
708 "foo", // return 709 "foo", // return
709 "main" // return 710 "main" // return
710 }; 711 };
711 712
712 void TestStepIntoHandler(Dart_IsolateId isolate_id, 713 void TestStepIntoHandler(Dart_IsolateId isolate_id,
713 intptr_t bp_id, 714 intptr_t bp_id,
714 const Dart_CodeLocation& location) { 715 const Dart_CodeLocation& location) {
715 Dart_StackTrace trace; 716 Dart_StackTrace trace;
716 Dart_GetStackTrace(&trace); 717 Dart_GetStackTrace(&trace);
717 const intptr_t expected_bpts_length = ARRAY_SIZE(step_into_expected_bpts); 718 const intptr_t expected_bpts_length = ARRAY_SIZE(step_into_expected_bpts);
718 intptr_t trace_len; 719 intptr_t trace_len;
719 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len); 720 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len);
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
778 EXPECT(breakpoint_hit_counter == ARRAY_SIZE(step_into_expected_bpts)); 779 EXPECT(breakpoint_hit_counter == ARRAY_SIZE(step_into_expected_bpts));
779 } 780 }
780 781
781 782
782 static void StepIntoHandler(Dart_IsolateId isolate_id, 783 static void StepIntoHandler(Dart_IsolateId isolate_id,
783 intptr_t bp_id, 784 intptr_t bp_id,
784 const Dart_CodeLocation& location) { 785 const Dart_CodeLocation& location) {
785 Dart_StackTrace trace; 786 Dart_StackTrace trace;
786 Dart_GetStackTrace(&trace); 787 Dart_GetStackTrace(&trace);
787 if (verbose) { 788 if (verbose) {
788 OS::Print(">>> Breakpoint nr. %d in %s <<<\n", 789 OS::Print(">>> Breakpoint nr. %d in %s <<<\n", breakpoint_hit_counter,
789 breakpoint_hit_counter, BreakpointInfo(trace)); 790 BreakpointInfo(trace));
790 PrintStackTrace(trace); 791 PrintStackTrace(trace);
791 } 792 }
792 breakpoint_hit = true; 793 breakpoint_hit = true;
793 breakpoint_hit_counter++; 794 breakpoint_hit_counter++;
794 Dart_SetStepInto(); 795 Dart_SetStepInto();
795 } 796 }
796 797
797 798
798 TEST_CASE(Debug_IgnoreBP) { 799 TEST_CASE(Debug_IgnoreBP) {
799 const char* kScriptChars = 800 const char* kScriptChars =
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
860 EXPECT_EQ(2 * 99, int_value); 861 EXPECT_EQ(2 * 99, int_value);
861 EXPECT(breakpoint_hit == true); 862 EXPECT(breakpoint_hit == true);
862 } 863 }
863 864
864 865
865 void TestSingleStepHandler(Dart_IsolateId isolate_id, 866 void TestSingleStepHandler(Dart_IsolateId isolate_id,
866 intptr_t bp_id, 867 intptr_t bp_id,
867 const Dart_CodeLocation& location) { 868 const Dart_CodeLocation& location) {
868 Dart_StackTrace trace; 869 Dart_StackTrace trace;
869 Dart_GetStackTrace(&trace); 870 Dart_GetStackTrace(&trace);
870 const char* expected_bpts[] = { 871 const char* expected_bpts[] = {"moo", "moo", "foo", "moo", "moo",
871 "moo", "moo", "foo", "moo", "moo", "foo", "moo", "moo", "foo", "main"}; 872 "foo", "moo", "moo", "foo", "main"};
872 const intptr_t expected_bpts_length = ARRAY_SIZE(expected_bpts); 873 const intptr_t expected_bpts_length = ARRAY_SIZE(expected_bpts);
873 intptr_t trace_len; 874 intptr_t trace_len;
874 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len); 875 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len);
875 EXPECT_VALID(res); 876 EXPECT_VALID(res);
876 EXPECT(breakpoint_hit_counter < expected_bpts_length); 877 EXPECT(breakpoint_hit_counter < expected_bpts_length);
877 Dart_ActivationFrame frame; 878 Dart_ActivationFrame frame;
878 res = Dart_GetActivationFrame(trace, 0, &frame); 879 res = Dart_GetActivationFrame(trace, 0, &frame);
879 EXPECT_VALID(res); 880 EXPECT_VALID(res);
880 Dart_Handle func_name; 881 Dart_Handle func_name;
881 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); 882 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL);
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
1079 " return y; \n" // Return. 1080 " return y; \n" // Return.
1080 " } \n" 1081 " } \n"
1081 "} \n" 1082 "} \n"
1082 " \n" 1083 " \n"
1083 "main() { \n" 1084 "main() { \n"
1084 " var i = 3; \n" 1085 " var i = 3; \n"
1085 " foo(i); \n" 1086 " foo(i); \n"
1086 "} \n"; 1087 "} \n";
1087 1088
1088 LoadScript(kScriptChars); 1089 LoadScript(kScriptChars);
1089 Dart_Handle result = Dart_SetNativeResolver(script_lib, 1090 Dart_Handle result =
1090 &NoopNativeResolver, 1091 Dart_SetNativeResolver(script_lib, &NoopNativeResolver, NULL);
1091 NULL);
1092 EXPECT_VALID(result); 1092 EXPECT_VALID(result);
1093 Dart_SetPausedEventHandler(&TestBreakpointHandlerWithVerify); 1093 Dart_SetPausedEventHandler(&TestBreakpointHandlerWithVerify);
1094 1094
1095 Dart_Handle script_url = NewString(TestCase::url()); 1095 Dart_Handle script_url = NewString(TestCase::url());
1096 1096
1097 const intptr_t num_breakpoints = 9; 1097 const intptr_t num_breakpoints = 9;
1098 intptr_t breakpoint_lines[num_breakpoints] = 1098 intptr_t breakpoint_lines[num_breakpoints] = {5, 6, 7, 8, 9, 10, 11, 12, 13};
1099 {5, 6, 7, 8, 9, 10, 11, 12, 13};
1100 1099
1101 for (intptr_t i = 0; i < num_breakpoints; i++) { 1100 for (intptr_t i = 0; i < num_breakpoints; i++) {
1102 result = Dart_SetBreakpoint(script_url, breakpoint_lines[i]); 1101 result = Dart_SetBreakpoint(script_url, breakpoint_lines[i]);
1103 EXPECT_VALID(result); 1102 EXPECT_VALID(result);
1104 EXPECT(Dart_IsInteger(result)); 1103 EXPECT(Dart_IsInteger(result));
1105 } 1104 }
1106 1105
1107 breakpoint_hit = false; 1106 breakpoint_hit = false;
1108 breakpoint_hit_counter = 0; 1107 breakpoint_hit_counter = 0;
1109 Dart_Handle retval = Invoke("main"); 1108 Dart_Handle retval = Invoke("main");
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
1195 ASSERT(script_lib != NULL); 1194 ASSERT(script_lib != NULL);
1196 ASSERT(!Dart_IsError(script_lib)); 1195 ASSERT(!Dart_IsError(script_lib));
1197 ASSERT(Dart_IsLibrary(script_lib)); 1196 ASSERT(Dart_IsLibrary(script_lib));
1198 Dart_Handle class_A = Dart_GetClass(script_lib, NewString("A")); 1197 Dart_Handle class_A = Dart_GetClass(script_lib, NewString("A"));
1199 EXPECT_VALID(class_A); 1198 EXPECT_VALID(class_A);
1200 1199
1201 const int expected_num_fields = 2; 1200 const int expected_num_fields = 2;
1202 struct { 1201 struct {
1203 const char* field_name; 1202 const char* field_name;
1204 const char* field_value; 1203 const char* field_value;
1205 } expected[] = { 1204 } expected[] = {// Expected values at first breakpoint.
1206 // Expected values at first breakpoint. 1205 {"bla", "yada yada yada"},
1207 { "bla", "yada yada yada"}, 1206 {"u", "null"},
1208 { "u", "null" }, 1207 // Expected values at second breakpoint.
1209 // Expected values at second breakpoint. 1208 {"bla", "silence is golden"},
1210 { "bla", "silence is golden" }, 1209 {"u", "442"}};
1211 { "u", "442" }
1212 };
1213 ASSERT(breakpoint_hit_counter < 2); 1210 ASSERT(breakpoint_hit_counter < 2);
1214 int expected_idx = breakpoint_hit_counter * expected_num_fields; 1211 int expected_idx = breakpoint_hit_counter * expected_num_fields;
1215 breakpoint_hit_counter++; 1212 breakpoint_hit_counter++;
1216 1213
1217 Dart_Handle fields = Dart_GetStaticFields(class_A); 1214 Dart_Handle fields = Dart_GetStaticFields(class_A);
1218 ASSERT(!Dart_IsError(fields)); 1215 ASSERT(!Dart_IsError(fields));
1219 ASSERT(Dart_IsList(fields)); 1216 ASSERT(Dart_IsList(fields));
1220 1217
1221 intptr_t list_length = 0; 1218 intptr_t list_length = 0;
1222 Dart_Handle retval = Dart_ListLength(fields, &list_length); 1219 Dart_Handle retval = Dart_ListLength(fields, &list_length);
(...skipping 18 matching lines...) Expand all
1241 Dart_StringToCString(value_handle, &value); 1238 Dart_StringToCString(value_handle, &value);
1242 EXPECT_STREQ(expected[expected_idx].field_value, value); 1239 EXPECT_STREQ(expected[expected_idx].field_value, value);
1243 OS::Print(" %s: %s\n", name, value); 1240 OS::Print(" %s: %s\n", name, value);
1244 expected_idx++; 1241 expected_idx++;
1245 } 1242 }
1246 } 1243 }
1247 1244
1248 1245
1249 TEST_CASE(Debug_InspectStaticField) { 1246 TEST_CASE(Debug_InspectStaticField) {
1250 const char* kScriptChars = 1247 const char* kScriptChars =
1251 " class A { \n" 1248 " class A { \n"
1252 " static var bla = 'yada yada yada'; \n" 1249 " static var bla = 'yada yada yada'; \n"
1253 " static var u; \n" 1250 " static var u; \n"
1254 " } \n" 1251 " } \n"
1255 " \n" 1252 " \n"
1256 " debugBreak() { } \n" 1253 " debugBreak() { } \n"
1257 " main() { \n" 1254 " main() { \n"
1258 " var a = new A(); \n" 1255 " var a = new A(); \n"
1259 " debugBreak(); \n" 1256 " debugBreak(); \n"
1260 " A.u = 442; \n" 1257 " A.u = 442; \n"
1261 " A.bla = 'silence is golden'; \n" 1258 " A.bla = 'silence is golden'; \n"
1262 " debugBreak(); \n" 1259 " debugBreak(); \n"
1263 " } \n"; 1260 " } \n";
1264 1261
1265 LoadScript(kScriptChars); 1262 LoadScript(kScriptChars);
1266 Dart_SetPausedEventHandler(&InspectStaticFieldHandler); 1263 Dart_SetPausedEventHandler(&InspectStaticFieldHandler);
1267 SetBreakpointAtEntry("", "debugBreak"); 1264 SetBreakpointAtEntry("", "debugBreak");
1268 1265
1269 breakpoint_hit_counter = 0; 1266 breakpoint_hit_counter = 0;
1270 Dart_Handle retval = Invoke("main"); 1267 Dart_Handle retval = Invoke("main");
1271 EXPECT_VALID(retval); 1268 EXPECT_VALID(retval);
1272 } 1269 }
1273 1270
1274 1271
1275 TEST_CASE(Debug_InspectObject) { 1272 TEST_CASE(Debug_InspectObject) {
1276 const char* kScriptChars = 1273 const char* kScriptChars =
1277 " class A { \n" 1274 " class A { \n"
1278 " var a_field = 'a'; \n" 1275 " var a_field = 'a'; \n"
1279 " static var bla = 'yada yada yada'; \n" 1276 " static var bla = 'yada yada yada'; \n"
1280 " static var error = unresolvedName(); \n" 1277 " static var error = unresolvedName(); \n"
1281 " var d = 42.1; \n" 1278 " var d = 42.1; \n"
1282 " } \n" 1279 " } \n"
1283 " class B extends A { \n" 1280 " class B extends A { \n"
1284 " var oneDay = const Duration(hours: 24); \n" 1281 " var oneDay = const Duration(hours: 24); \n"
1285 " static var bla = 'blah blah'; \n" 1282 " static var bla = 'blah blah'; \n"
1286 " } \n" 1283 " } \n"
1287 " get_b() { return new B(); } \n" 1284 " get_b() { return new B(); } \n"
1288 " get_int() { return 666; } \n"; 1285 " get_int() { return 666; } \n";
1289 1286
1290 // Number of instance fields in an object of class B. 1287 // Number of instance fields in an object of class B.
1291 const intptr_t kNumObjectFields = 3; 1288 const intptr_t kNumObjectFields = 3;
1292 1289
1293 LoadScript(kScriptChars); 1290 LoadScript(kScriptChars);
1294 1291
1295 Dart_Handle object_b = Invoke("get_b"); 1292 Dart_Handle object_b = Invoke("get_b");
1296 1293
1297 EXPECT_VALID(object_b); 1294 EXPECT_VALID(object_b);
1298 1295
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
1521 "} \n" 1518 "} \n"
1522 "void main() { \n" 1519 "void main() { \n"
1523 " A.foo(); \n" 1520 " A.foo(); \n"
1524 "} \n"; 1521 "} \n";
1525 1522
1526 Dart_Isolate isolate = TestCase::CreateTestIsolate(); 1523 Dart_Isolate isolate = TestCase::CreateTestIsolate();
1527 ASSERT(isolate != NULL); 1524 ASSERT(isolate != NULL);
1528 Dart_EnterScope(); 1525 Dart_EnterScope();
1529 LoadScript(kScriptChars); 1526 LoadScript(kScriptChars);
1530 1527
1531 Dart_Handle result = Dart_SetNativeResolver(script_lib, 1528 Dart_Handle result =
1532 &InterruptNativeResolver, 1529 Dart_SetNativeResolver(script_lib, &InterruptNativeResolver, NULL);
1533 NULL);
1534 EXPECT_VALID(result); 1530 EXPECT_VALID(result);
1535 1531
1536 Dart_Handle retval = Invoke("main"); 1532 Dart_Handle retval = Invoke("main");
1537 EXPECT_VALID(retval); 1533 EXPECT_VALID(retval);
1538 Dart_ExitScope(); 1534 Dart_ExitScope();
1539 Dart_ShutdownIsolate(); 1535 Dart_ShutdownIsolate();
1540 } 1536 }
1541 1537
1542 1538
1543 TEST_CASE(Debug_InterruptIsolate) { 1539 TEST_CASE(Debug_InterruptIsolate) {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1583 ml.Wait(); 1579 ml.Wait();
1584 } 1580 }
1585 } 1581 }
1586 EXPECT(interrupt_isolate_id == ILLEGAL_ISOLATE_ID); 1582 EXPECT(interrupt_isolate_id == ILLEGAL_ISOLATE_ID);
1587 OS::PrintErr("Complete\n"); 1583 OS::PrintErr("Complete\n");
1588 FLAG_trace_shutdown = saved_flag; 1584 FLAG_trace_shutdown = saved_flag;
1589 } 1585 }
1590 1586
1591 1587
1592 static void StackTraceDump1BreakpointHandler( 1588 static void StackTraceDump1BreakpointHandler(
1593 Dart_IsolateId isolate_id, 1589 Dart_IsolateId isolate_id,
1594 intptr_t bp_id, 1590 intptr_t bp_id,
1595 const Dart_CodeLocation& location) { 1591 const Dart_CodeLocation& location) {
1596 Dart_StackTrace trace; 1592 Dart_StackTrace trace;
1597 Dart_GetStackTrace(&trace); 1593 Dart_GetStackTrace(&trace);
1598 const int kStackTraceLen = 4; 1594 const int kStackTraceLen = 4;
1599 static const char* expected_trace[kStackTraceLen] = { 1595 static const char* expected_trace[kStackTraceLen] = {
1600 "local_to_main", 1596 "local_to_main", "Test.local1_to_func1", "Test.func1", "main"};
1601 "Test.local1_to_func1",
1602 "Test.func1",
1603 "main"
1604 };
1605 1597
1606 intptr_t trace_len; 1598 intptr_t trace_len;
1607 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len); 1599 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len);
1608 EXPECT_VALID(res); 1600 EXPECT_VALID(res);
1609 EXPECT_EQ(kStackTraceLen, trace_len); 1601 EXPECT_EQ(kStackTraceLen, trace_len);
1610 1602
1611 // Frame 0 corresponding to "local_to_main". 1603 // Frame 0 corresponding to "local_to_main".
1612 Dart_Handle frame0_locals = Dart_NewList(8); 1604 Dart_Handle frame0_locals = Dart_NewList(8);
1613 Dart_ListSetAt(frame0_locals, 0, NewString("i")); 1605 Dart_ListSetAt(frame0_locals, 0, NewString("i"));
1614 Dart_ListSetAt(frame0_locals, 1, Dart_NewInteger(76)); 1606 Dart_ListSetAt(frame0_locals, 1, Dart_NewInteger(76));
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1665 Dart_ListSetAt(frame3_locals, 5, Dart_Null()); 1657 Dart_ListSetAt(frame3_locals, 5, Dart_Null());
1666 Dart_ListSetAt(frame3_locals, 6, NewString("sum")); 1658 Dart_ListSetAt(frame3_locals, 6, NewString("sum"));
1667 Dart_ListSetAt(frame3_locals, 7, Dart_NewInteger(0)); 1659 Dart_ListSetAt(frame3_locals, 7, Dart_NewInteger(0));
1668 Dart_ListSetAt(frame3_locals, 8, NewString("value")); 1660 Dart_ListSetAt(frame3_locals, 8, NewString("value"));
1669 Dart_ListSetAt(frame3_locals, 9, Dart_Null()); 1661 Dart_ListSetAt(frame3_locals, 9, Dart_Null());
1670 Dart_ListSetAt(frame3_locals, 10, NewString("func1")); 1662 Dart_ListSetAt(frame3_locals, 10, NewString("func1"));
1671 Dart_ListSetAt(frame3_locals, 11, Dart_Null()); 1663 Dart_ListSetAt(frame3_locals, 11, Dart_Null());
1672 Dart_ListSetAt(frame3_locals, 12, NewString("main_local")); 1664 Dart_ListSetAt(frame3_locals, 12, NewString("main_local"));
1673 Dart_ListSetAt(frame3_locals, 13, Dart_Null()); 1665 Dart_ListSetAt(frame3_locals, 13, Dart_Null());
1674 1666
1675 Dart_Handle expected_locals[] = { 1667 Dart_Handle expected_locals[] = {frame0_locals, frame1_locals, frame2_locals,
1676 frame0_locals, 1668 frame3_locals};
1677 frame1_locals,
1678 frame2_locals,
1679 frame3_locals
1680 };
1681 breakpoint_hit_counter++; 1669 breakpoint_hit_counter++;
1682 VerifyStackTrace(trace, expected_trace, expected_locals, 1670 VerifyStackTrace(trace, expected_trace, expected_locals, kStackTraceLen,
1683 kStackTraceLen, true); 1671 true);
1684 } 1672 }
1685 1673
1686 1674
1687 TEST_CASE(Debug_StackTraceDump1) { 1675 TEST_CASE(Debug_StackTraceDump1) {
1688 const char* kScriptChars = 1676 const char* kScriptChars =
1689 "class Test {\n" 1677 "class Test {\n"
1690 " Test(int local);\n" 1678 " Test(int local);\n"
1691 "\n" 1679 "\n"
1692 " int func1(int func(int i, int j)) {\n" 1680 " int func1(int func(int i, int j)) {\n"
1693 " var i = 0;\n" 1681 " var i = 0;\n"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1744 EXPECT_EQ(195, int_value); 1732 EXPECT_EQ(195, int_value);
1745 EXPECT_EQ(1, breakpoint_hit_counter); 1733 EXPECT_EQ(1, breakpoint_hit_counter);
1746 } 1734 }
1747 1735
1748 1736
1749 static void StackTraceDump2ExceptionHandler(Dart_IsolateId isolate_id, 1737 static void StackTraceDump2ExceptionHandler(Dart_IsolateId isolate_id,
1750 Dart_Handle exception_object, 1738 Dart_Handle exception_object,
1751 Dart_StackTrace trace) { 1739 Dart_StackTrace trace) {
1752 const int kStackTraceLen = 5; 1740 const int kStackTraceLen = 5;
1753 static const char* expected_trace[kStackTraceLen] = { 1741 static const char* expected_trace[kStackTraceLen] = {
1754 "Object._noSuchMethod", 1742 "Object._noSuchMethod", "Object.noSuchMethod", "Test.local1_to_func1",
1755 "Object.noSuchMethod", 1743 "Test.func1", "main"};
1756 "Test.local1_to_func1",
1757 "Test.func1",
1758 "main"
1759 };
1760 1744
1761 intptr_t trace_len; 1745 intptr_t trace_len;
1762 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len); 1746 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len);
1763 EXPECT_VALID(res); 1747 EXPECT_VALID(res);
1764 EXPECT_EQ(kStackTraceLen, trace_len); 1748 EXPECT_EQ(kStackTraceLen, trace_len);
1765 1749
1766 // Frame 0 corresponding to "Object._noSuchMethod". 1750 // Frame 0 corresponding to "Object._noSuchMethod".
1767 Dart_Handle frame0_locals = Dart_NewList(12); 1751 Dart_Handle frame0_locals = Dart_NewList(12);
1768 Dart_ListSetAt(frame0_locals, 0, NewString("this")); 1752 Dart_ListSetAt(frame0_locals, 0, NewString("this"));
1769 Dart_ListSetAt(frame0_locals, 1, Dart_Null()); 1753 Dart_ListSetAt(frame0_locals, 1, Dart_Null());
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
1831 Dart_ListSetAt(frame4_locals, 3, Dart_NewInteger(20)); 1815 Dart_ListSetAt(frame4_locals, 3, Dart_NewInteger(20));
1832 Dart_ListSetAt(frame4_locals, 4, NewString("local_to_main")); 1816 Dart_ListSetAt(frame4_locals, 4, NewString("local_to_main"));
1833 Dart_ListSetAt(frame4_locals, 5, Dart_Null()); 1817 Dart_ListSetAt(frame4_locals, 5, Dart_Null());
1834 Dart_ListSetAt(frame4_locals, 6, NewString("sum")); 1818 Dart_ListSetAt(frame4_locals, 6, NewString("sum"));
1835 Dart_ListSetAt(frame4_locals, 7, Dart_NewInteger(0)); 1819 Dart_ListSetAt(frame4_locals, 7, Dart_NewInteger(0));
1836 Dart_ListSetAt(frame4_locals, 8, NewString("value")); 1820 Dart_ListSetAt(frame4_locals, 8, NewString("value"));
1837 Dart_ListSetAt(frame4_locals, 9, Dart_Null()); 1821 Dart_ListSetAt(frame4_locals, 9, Dart_Null());
1838 Dart_ListSetAt(frame4_locals, 10, NewString("func1")); 1822 Dart_ListSetAt(frame4_locals, 10, NewString("func1"));
1839 Dart_ListSetAt(frame4_locals, 11, Dart_Null()); 1823 Dart_ListSetAt(frame4_locals, 11, Dart_Null());
1840 1824
1841 Dart_Handle expected_locals[] = { 1825 Dart_Handle expected_locals[] = {frame0_locals, frame1_locals, frame2_locals,
1842 frame0_locals, 1826 frame3_locals, frame4_locals};
1843 frame1_locals,
1844 frame2_locals,
1845 frame3_locals,
1846 frame4_locals
1847 };
1848 breakpoint_hit_counter++; 1827 breakpoint_hit_counter++;
1849 VerifyStackTrace(trace, expected_trace, expected_locals, 1828 VerifyStackTrace(trace, expected_trace, expected_locals, kStackTraceLen,
1850 kStackTraceLen, true); 1829 true);
1851 } 1830 }
1852 1831
1853 1832
1854 TEST_CASE(Debug_StackTraceDump2) { 1833 TEST_CASE(Debug_StackTraceDump2) {
1855 const char* kScriptChars = 1834 const char* kScriptChars =
1856 "class Test {\n" 1835 "class Test {\n"
1857 " Test(int local);\n" 1836 " Test(int local);\n"
1858 "\n" 1837 "\n"
1859 " int func1(int func(int i, int j)) {\n" 1838 " int func1(int func(int i, int j)) {\n"
1860 " var i = 0;\n" 1839 " var i = 0;\n"
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
2021 // List l now has 5 elements. 2000 // List l now has 5 elements.
2022 2001
2023 len = Dart_EvaluateExpr(script_lib, NewString("l.length + 1")); 2002 len = Dart_EvaluateExpr(script_lib, NewString("l.length + 1"));
2024 EXPECT_VALID(len); 2003 EXPECT_VALID(len);
2025 EXPECT(Dart_IsNumber(len)); 2004 EXPECT(Dart_IsNumber(len));
2026 EXPECT_EQ(6, ToInt64(len)); 2005 EXPECT_EQ(6, ToInt64(len));
2027 2006
2028 closure = Dart_EvaluateExpr(script_lib, NewString("(x) => l.length + x")); 2007 closure = Dart_EvaluateExpr(script_lib, NewString("(x) => l.length + x"));
2029 EXPECT_VALID(closure); 2008 EXPECT_VALID(closure);
2030 EXPECT(Dart_IsClosure(closure)); 2009 EXPECT(Dart_IsClosure(closure));
2031 Dart_Handle args[1] = { Dart_NewInteger(1) }; 2010 Dart_Handle args[1] = {Dart_NewInteger(1)};
2032 len = Dart_InvokeClosure(closure, 1, args); 2011 len = Dart_InvokeClosure(closure, 1, args);
2033 EXPECT_VALID(len); 2012 EXPECT_VALID(len);
2034 EXPECT(Dart_IsNumber(len)); 2013 EXPECT(Dart_IsNumber(len));
2035 EXPECT_EQ(6, ToInt64(len)); 2014 EXPECT_EQ(6, ToInt64(len));
2036 2015
2037 len = Dart_EvaluateExpr(script_lib, NewString("((x) => l.length + x)(1)")); 2016 len = Dart_EvaluateExpr(script_lib, NewString("((x) => l.length + x)(1)"));
2038 EXPECT_VALID(len); 2017 EXPECT_VALID(len);
2039 EXPECT(Dart_IsNumber(len)); 2018 EXPECT(Dart_IsNumber(len));
2040 EXPECT_EQ(6, ToInt64(len)); 2019 EXPECT_EQ(6, ToInt64(len));
2041 2020
(...skipping 28 matching lines...) Expand all
2070 " Point(this.x, this.y); \n" 2049 " Point(this.x, this.y); \n"
2071 " get r => sqrt(x*x + y*y); \n" 2050 " get r => sqrt(x*x + y*y); \n"
2072 "} \n"; 2051 "} \n";
2073 LoadScript(kScriptChars); 2052 LoadScript(kScriptChars);
2074 Dart_FinalizeLoading(false); 2053 Dart_FinalizeLoading(false);
2075 2054
2076 Dart_SetExceptionThrownHandler(&EvaluateInActivationOfEvaluateHandler); 2055 Dart_SetExceptionThrownHandler(&EvaluateInActivationOfEvaluateHandler);
2077 Dart_SetExceptionPauseInfo(kPauseOnAllExceptions); 2056 Dart_SetExceptionPauseInfo(kPauseOnAllExceptions);
2078 breakpoint_hit_counter = 0; 2057 breakpoint_hit_counter = 0;
2079 2058
2080 Dart_Handle result = Dart_EvaluateExpr(script_lib, NewString( 2059 Dart_Handle result = Dart_EvaluateExpr(
2081 "() { var p = new Point(3, 4); throw p; } ())")); 2060 script_lib, NewString("() { var p = new Point(3, 4); throw p; } ())"));
2082 EXPECT(Dart_IsError(result)); 2061 EXPECT(Dart_IsError(result));
2083 EXPECT_EQ(1, breakpoint_hit_counter); 2062 EXPECT_EQ(1, breakpoint_hit_counter);
2084 } 2063 }
2085 2064
2086 2065
2087 static void UnhandledExceptionHandler(Dart_IsolateId isolate_id, 2066 static void UnhandledExceptionHandler(Dart_IsolateId isolate_id,
2088 Dart_Handle exception_object, 2067 Dart_Handle exception_object,
2089 Dart_StackTrace trace) { 2068 Dart_StackTrace trace) {
2090 breakpoint_hit_counter++; 2069 breakpoint_hit_counter++;
2091 } 2070 }
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
2199 Dart_Handle iterable_name = Dart_NewStringFromCString("Iterable"); 2178 Dart_Handle iterable_name = Dart_NewStringFromCString("Iterable");
2200 Dart_Handle list_name = Dart_NewStringFromCString("List"); 2179 Dart_Handle list_name = Dart_NewStringFromCString("List");
2201 2180
2202 Dart_Handle object_type = Dart_GetType(core_lib, object_name, 0, NULL); 2181 Dart_Handle object_type = Dart_GetType(core_lib, object_name, 0, NULL);
2203 Dart_Handle int_type = Dart_GetType(core_lib, int_name, 0, NULL); 2182 Dart_Handle int_type = Dart_GetType(core_lib, int_name, 0, NULL);
2204 EXPECT_VALID(int_type); 2183 EXPECT_VALID(int_type);
2205 Dart_Handle Test_type = Dart_GetType(script_lib, Test_name, 0, NULL); 2184 Dart_Handle Test_type = Dart_GetType(script_lib, Test_name, 0, NULL);
2206 Dart_Handle Test1_type = Dart_GetType(script_lib, Test1_name, 0, NULL); 2185 Dart_Handle Test1_type = Dart_GetType(script_lib, Test1_name, 0, NULL);
2207 Dart_Handle type_args = Dart_NewList(1); 2186 Dart_Handle type_args = Dart_NewList(1);
2208 Dart_ListSetAt(type_args, 0, int_type); 2187 Dart_ListSetAt(type_args, 0, int_type);
2209 Dart_Handle Test2_int_type = Dart_GetType(script_lib, 2188 Dart_Handle Test2_int_type =
2210 Test2_name, 2189 Dart_GetType(script_lib, Test2_name, 1, &type_args);
2211 1,
2212 &type_args);
2213 Dart_Handle Test3_type = Dart_GetType(script_lib, Test3_name, 0, NULL); 2190 Dart_Handle Test3_type = Dart_GetType(script_lib, Test3_name, 0, NULL);
2214 type_args = Dart_NewList(2); 2191 type_args = Dart_NewList(2);
2215 Dart_ListSetAt(type_args, 0, int_type); 2192 Dart_ListSetAt(type_args, 0, int_type);
2216 Dart_ListSetAt(type_args, 1, Test_type); 2193 Dart_ListSetAt(type_args, 1, Test_type);
2217 Dart_Handle Test4_int_type = Dart_GetType(script_lib, 2194 Dart_Handle Test4_int_type =
2218 Test4_name, 2195 Dart_GetType(script_lib, Test4_name, 2, &type_args);
2219 2,
2220 &type_args);
2221 type_args = Dart_NewList(3); 2196 type_args = Dart_NewList(3);
2222 Dart_ListSetAt(type_args, 0, int_type); 2197 Dart_ListSetAt(type_args, 0, int_type);
2223 Dart_ListSetAt(type_args, 1, Test_type); 2198 Dart_ListSetAt(type_args, 1, Test_type);
2224 Dart_ListSetAt(type_args, 2, int_type); 2199 Dart_ListSetAt(type_args, 2, int_type);
2225 Dart_Handle Test5_int_type = Dart_GetType(script_lib, 2200 Dart_Handle Test5_int_type =
2226 Test5_name, 2201 Dart_GetType(script_lib, Test5_name, 3, &type_args);
2227 3,
2228 &type_args);
2229 { 2202 {
2230 Dart_Handle super_type = Dart_GetSupertype(object_type); 2203 Dart_Handle super_type = Dart_GetSupertype(object_type);
2231 EXPECT(super_type == Dart_Null()); 2204 EXPECT(super_type == Dart_Null());
2232 } 2205 }
2233 { 2206 {
2234 Dart_Handle super_type = Dart_GetSupertype(Test1_type); 2207 Dart_Handle super_type = Dart_GetSupertype(Test1_type);
2235 const Type& expected_type = Api::UnwrapTypeHandle(zone, Test_type); 2208 const Type& expected_type = Api::UnwrapTypeHandle(zone, Test_type);
2236 const Type& actual_type = Api::UnwrapTypeHandle(zone, super_type); 2209 const Type& actual_type = Api::UnwrapTypeHandle(zone, super_type);
2237 EXPECT(expected_type.raw() == actual_type.raw()); 2210 EXPECT(expected_type.raw() == actual_type.raw());
2238 } 2211 }
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
2360 " null, 5, 17, 5, 18, 9, 19, 12," 2333 " null, 5, 17, 5, 18, 9, 19, 12,"
2361 " null, 6, 21, 1," 2334 " null, 6, 21, 1,"
2362 " null, 8, 24, 1, 25, 5, 26, 6, 27, 8," 2335 " null, 8, 24, 1, 25, 5, 26, 6, 27, 8,"
2363 " null, 9, 29, 1]", 2336 " null, 9, 29, 1]",
2364 tokens_cstr); 2337 tokens_cstr);
2365 } 2338 }
2366 2339
2367 #endif 2340 #endif
2368 2341
2369 } // namespace dart 2342 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/debugger_api_impl.cc ('k') | runtime/vm/debugger_arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698