OLD | NEW |
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_debugger_api.h" | 5 #include "include/dart_debugger_api.h" |
6 #include "platform/assert.h" | 6 #include "platform/assert.h" |
7 #include "vm/dart_api_impl.h" | 7 #include "vm/dart_api_impl.h" |
8 #include "vm/thread.h" | 8 #include "vm/thread.h" |
9 #include "vm/unit_test.h" | 9 #include "vm/unit_test.h" |
10 | 10 |
(...skipping 13 matching lines...) Expand all Loading... |
24 EXPECT_VALID(script_lib); | 24 EXPECT_VALID(script_lib); |
25 } | 25 } |
26 | 26 |
27 | 27 |
28 static void SetBreakpointAtEntry(const char* cname, const char* fname) { | 28 static void SetBreakpointAtEntry(const char* cname, const char* fname) { |
29 ASSERT(script_lib != NULL); | 29 ASSERT(script_lib != NULL); |
30 ASSERT(!Dart_IsError(script_lib)); | 30 ASSERT(!Dart_IsError(script_lib)); |
31 ASSERT(Dart_IsLibrary(script_lib)); | 31 ASSERT(Dart_IsLibrary(script_lib)); |
32 Dart_Breakpoint bpt; | 32 Dart_Breakpoint bpt; |
33 Dart_Handle res = Dart_SetBreakpointAtEntry(script_lib, | 33 Dart_Handle res = Dart_SetBreakpointAtEntry(script_lib, |
34 Dart_NewString(cname), | 34 NewString(cname), |
35 Dart_NewString(fname), | 35 NewString(fname), |
36 &bpt); | 36 &bpt); |
37 EXPECT_VALID(res); | 37 EXPECT_VALID(res); |
38 } | 38 } |
39 | 39 |
40 | 40 |
41 static Dart_Handle Invoke(const char* func_name) { | 41 static Dart_Handle Invoke(const char* func_name) { |
42 ASSERT(script_lib != NULL); | 42 ASSERT(script_lib != NULL); |
43 ASSERT(!Dart_IsError(script_lib)); | 43 ASSERT(!Dart_IsError(script_lib)); |
44 ASSERT(Dart_IsLibrary(script_lib)); | 44 ASSERT(Dart_IsLibrary(script_lib)); |
45 return Dart_Invoke(script_lib, Dart_NewString(func_name), 0, NULL); | 45 return Dart_Invoke(script_lib, NewString(func_name), 0, NULL); |
46 } | 46 } |
47 | 47 |
48 | 48 |
49 static char const* ToCString(Dart_Handle str) { | 49 static char const* ToCString(Dart_Handle str) { |
50 EXPECT(Dart_IsString(str)); | 50 EXPECT(Dart_IsString(str)); |
51 char const* c_str = NULL; | 51 char const* c_str = NULL; |
52 Dart_StringToCString(str, &c_str); | 52 Dart_StringAsCString(str, &c_str); |
53 return c_str; | 53 return c_str; |
54 } | 54 } |
55 | 55 |
56 | 56 |
57 static char const* BreakpointInfo(Dart_StackTrace trace) { | 57 static char const* BreakpointInfo(Dart_StackTrace trace) { |
58 static char info_str[128]; | 58 static char info_str[128]; |
59 Dart_ActivationFrame frame; | 59 Dart_ActivationFrame frame; |
60 Dart_Handle res = Dart_GetActivationFrame(trace, 0, &frame); | 60 Dart_Handle res = Dart_GetActivationFrame(trace, 0, &frame); |
61 EXPECT_VALID(res); | 61 EXPECT_VALID(res); |
62 Dart_Handle func_name; | 62 Dart_Handle func_name; |
(...skipping 28 matching lines...) Expand all Loading... |
91 | 91 |
92 | 92 |
93 static void PrintObject(Dart_Handle obj, bool expand) { | 93 static void PrintObject(Dart_Handle obj, bool expand) { |
94 Dart_Handle obj_class = Dart_GetObjClass(obj); | 94 Dart_Handle obj_class = Dart_GetObjClass(obj); |
95 EXPECT_VALID(obj_class); | 95 EXPECT_VALID(obj_class); |
96 EXPECT(!Dart_IsNull(obj_class)); | 96 EXPECT(!Dart_IsNull(obj_class)); |
97 Dart_Handle class_name = Dart_ToString(obj_class); | 97 Dart_Handle class_name = Dart_ToString(obj_class); |
98 EXPECT_VALID(class_name); | 98 EXPECT_VALID(class_name); |
99 EXPECT(Dart_IsString(class_name)); | 99 EXPECT(Dart_IsString(class_name)); |
100 char const* class_name_str; | 100 char const* class_name_str; |
101 Dart_StringToCString(class_name, &class_name_str); | 101 Dart_StringAsCString(class_name, &class_name_str); |
102 Dart_Handle fields = Dart_GetInstanceFields(obj); | 102 Dart_Handle fields = Dart_GetInstanceFields(obj); |
103 EXPECT_VALID(fields); | 103 EXPECT_VALID(fields); |
104 EXPECT(Dart_IsList(fields)); | 104 EXPECT(Dart_IsList(fields)); |
105 OS::Print("object of type '%s'", class_name_str); | 105 OS::Print("object of type '%s'", class_name_str); |
106 PrintObjectList(fields, "field", false); | 106 PrintObjectList(fields, "field", false); |
107 Dart_Handle statics = Dart_GetStaticFields(obj_class); | 107 Dart_Handle statics = Dart_GetStaticFields(obj_class); |
108 EXPECT_VALID(obj_class); | 108 EXPECT_VALID(obj_class); |
109 PrintObjectList(statics, "static field", false); | 109 PrintObjectList(statics, "static field", false); |
110 } | 110 } |
111 | 111 |
(...skipping 17 matching lines...) Expand all Loading... |
129 } | 129 } |
130 | 130 |
131 | 131 |
132 static void PrintActivationFrame(Dart_ActivationFrame frame) { | 132 static void PrintActivationFrame(Dart_ActivationFrame frame) { |
133 Dart_Handle func_name; | 133 Dart_Handle func_name; |
134 Dart_Handle res; | 134 Dart_Handle res; |
135 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); | 135 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); |
136 EXPECT_VALID(res); | 136 EXPECT_VALID(res); |
137 EXPECT(Dart_IsString(func_name)); | 137 EXPECT(Dart_IsString(func_name)); |
138 const char* func_name_chars; | 138 const char* func_name_chars; |
139 Dart_StringToCString(func_name, &func_name_chars); | 139 Dart_StringAsCString(func_name, &func_name_chars); |
140 OS::Print(" function %s\n", func_name_chars); | 140 OS::Print(" function %s\n", func_name_chars); |
141 Dart_Handle locals = Dart_GetLocalVariables(frame); | 141 Dart_Handle locals = Dart_GetLocalVariables(frame); |
142 EXPECT_VALID(locals); | 142 EXPECT_VALID(locals); |
143 intptr_t list_length = 0; | 143 intptr_t list_length = 0; |
144 Dart_Handle ret = Dart_ListLength(locals, &list_length); | 144 Dart_Handle ret = Dart_ListLength(locals, &list_length); |
145 EXPECT_VALID(ret); | 145 EXPECT_VALID(ret); |
146 for (int i = 0; i + 1 < list_length; i += 2) { | 146 for (int i = 0; i + 1 < list_length; i += 2) { |
147 Dart_Handle name_handle = Dart_ListGetAt(locals, i); | 147 Dart_Handle name_handle = Dart_ListGetAt(locals, i); |
148 EXPECT_VALID(name_handle); | 148 EXPECT_VALID(name_handle); |
149 EXPECT(Dart_IsString(name_handle)); | 149 EXPECT(Dart_IsString(name_handle)); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
195 | 195 |
196 static void VerifyStackFrame(Dart_ActivationFrame frame, | 196 static void VerifyStackFrame(Dart_ActivationFrame frame, |
197 const char* expected_name, | 197 const char* expected_name, |
198 Dart_Handle expected_locals) { | 198 Dart_Handle expected_locals) { |
199 Dart_Handle func_name; | 199 Dart_Handle func_name; |
200 Dart_Handle res; | 200 Dart_Handle res; |
201 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); | 201 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); |
202 EXPECT_VALID(res); | 202 EXPECT_VALID(res); |
203 EXPECT(Dart_IsString(func_name)); | 203 EXPECT(Dart_IsString(func_name)); |
204 const char* func_name_chars; | 204 const char* func_name_chars; |
205 Dart_StringToCString(func_name, &func_name_chars); | 205 Dart_StringAsCString(func_name, &func_name_chars); |
206 if (expected_name != NULL) { | 206 if (expected_name != NULL) { |
207 EXPECT_STREQ(func_name_chars, expected_name); | 207 EXPECT_STREQ(func_name_chars, expected_name); |
208 } | 208 } |
209 | 209 |
210 if (!Dart_IsNull(expected_locals)) { | 210 if (!Dart_IsNull(expected_locals)) { |
211 Dart_Handle locals = Dart_GetLocalVariables(frame); | 211 Dart_Handle locals = Dart_GetLocalVariables(frame); |
212 EXPECT_VALID(locals); | 212 EXPECT_VALID(locals); |
213 VerifyListEquals(expected_locals, locals); | 213 VerifyListEquals(expected_locals, locals); |
214 } | 214 } |
215 } | 215 } |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 EXPECT_EQ(expected_trace_length, trace_len); | 248 EXPECT_EQ(expected_trace_length, trace_len); |
249 for (int i = 0; i < trace_len; i++) { | 249 for (int i = 0; i < trace_len; i++) { |
250 Dart_ActivationFrame frame; | 250 Dart_ActivationFrame frame; |
251 res = Dart_GetActivationFrame(trace, i, &frame); | 251 res = Dart_GetActivationFrame(trace, i, &frame); |
252 EXPECT_VALID(res); | 252 EXPECT_VALID(res); |
253 Dart_Handle func_name; | 253 Dart_Handle func_name; |
254 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); | 254 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); |
255 EXPECT_VALID(res); | 255 EXPECT_VALID(res); |
256 EXPECT(Dart_IsString(func_name)); | 256 EXPECT(Dart_IsString(func_name)); |
257 const char* name_chars; | 257 const char* name_chars; |
258 Dart_StringToCString(func_name, &name_chars); | 258 Dart_StringAsCString(func_name, &name_chars); |
259 EXPECT_STREQ(expected_trace[i], name_chars); | 259 EXPECT_STREQ(expected_trace[i], name_chars); |
260 if (verbose) OS::Print(" >> %d: %s\n", i, name_chars); | 260 if (verbose) OS::Print(" >> %d: %s\n", i, name_chars); |
261 } | 261 } |
262 } | 262 } |
263 | 263 |
264 | 264 |
265 TEST_CASE(Debug_Breakpoint) { | 265 TEST_CASE(Debug_Breakpoint) { |
266 const char* kScriptChars = | 266 const char* kScriptChars = |
267 "void moo(s) { } \n" | 267 "void moo(s) { } \n" |
268 "class A { \n" | 268 "class A { \n" |
(...skipping 26 matching lines...) Expand all Loading... |
295 EXPECT_VALID(res); | 295 EXPECT_VALID(res); |
296 EXPECT(breakpoint_hit_counter < expected_bpts_length); | 296 EXPECT(breakpoint_hit_counter < expected_bpts_length); |
297 Dart_ActivationFrame frame; | 297 Dart_ActivationFrame frame; |
298 res = Dart_GetActivationFrame(trace, 0, &frame); | 298 res = Dart_GetActivationFrame(trace, 0, &frame); |
299 EXPECT_VALID(res); | 299 EXPECT_VALID(res); |
300 Dart_Handle func_name; | 300 Dart_Handle func_name; |
301 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); | 301 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); |
302 EXPECT_VALID(res); | 302 EXPECT_VALID(res); |
303 EXPECT(Dart_IsString(func_name)); | 303 EXPECT(Dart_IsString(func_name)); |
304 const char* name_chars; | 304 const char* name_chars; |
305 Dart_StringToCString(func_name, &name_chars); | 305 Dart_StringAsCString(func_name, &name_chars); |
306 if (breakpoint_hit_counter < expected_bpts_length) { | 306 if (breakpoint_hit_counter < expected_bpts_length) { |
307 EXPECT_STREQ(expected_bpts[breakpoint_hit_counter], name_chars); | 307 EXPECT_STREQ(expected_bpts[breakpoint_hit_counter], name_chars); |
308 } | 308 } |
309 if (verbose) { | 309 if (verbose) { |
310 OS::Print(" >> bpt nr %d: %s\n", breakpoint_hit_counter, name_chars); | 310 OS::Print(" >> bpt nr %d: %s\n", breakpoint_hit_counter, name_chars); |
311 } | 311 } |
312 breakpoint_hit = true; | 312 breakpoint_hit = true; |
313 breakpoint_hit_counter++; | 313 breakpoint_hit_counter++; |
314 Dart_SetStepOut(); | 314 Dart_SetStepOut(); |
315 } | 315 } |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
371 EXPECT_VALID(res); | 371 EXPECT_VALID(res); |
372 EXPECT(breakpoint_hit_counter < expected_bpts_length); | 372 EXPECT(breakpoint_hit_counter < expected_bpts_length); |
373 Dart_ActivationFrame frame; | 373 Dart_ActivationFrame frame; |
374 res = Dart_GetActivationFrame(trace, 0, &frame); | 374 res = Dart_GetActivationFrame(trace, 0, &frame); |
375 EXPECT_VALID(res); | 375 EXPECT_VALID(res); |
376 Dart_Handle func_name; | 376 Dart_Handle func_name; |
377 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); | 377 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); |
378 EXPECT_VALID(res); | 378 EXPECT_VALID(res); |
379 EXPECT(Dart_IsString(func_name)); | 379 EXPECT(Dart_IsString(func_name)); |
380 const char* name_chars; | 380 const char* name_chars; |
381 Dart_StringToCString(func_name, &name_chars); | 381 Dart_StringAsCString(func_name, &name_chars); |
382 if (breakpoint_hit_counter < expected_bpts_length) { | 382 if (breakpoint_hit_counter < expected_bpts_length) { |
383 EXPECT_STREQ(expected_bpts[breakpoint_hit_counter], name_chars); | 383 EXPECT_STREQ(expected_bpts[breakpoint_hit_counter], name_chars); |
384 } | 384 } |
385 if (verbose) { | 385 if (verbose) { |
386 OS::Print(" >> bpt nr %d: %s\n", breakpoint_hit_counter, name_chars); | 386 OS::Print(" >> bpt nr %d: %s\n", breakpoint_hit_counter, name_chars); |
387 } | 387 } |
388 breakpoint_hit = true; | 388 breakpoint_hit = true; |
389 breakpoint_hit_counter++; | 389 breakpoint_hit_counter++; |
390 Dart_SetStepInto(); | 390 Dart_SetStepInto(); |
391 } | 391 } |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
526 EXPECT_VALID(res); | 526 EXPECT_VALID(res); |
527 EXPECT(breakpoint_hit_counter < expected_bpts_length); | 527 EXPECT(breakpoint_hit_counter < expected_bpts_length); |
528 Dart_ActivationFrame frame; | 528 Dart_ActivationFrame frame; |
529 res = Dart_GetActivationFrame(trace, 0, &frame); | 529 res = Dart_GetActivationFrame(trace, 0, &frame); |
530 EXPECT_VALID(res); | 530 EXPECT_VALID(res); |
531 Dart_Handle func_name; | 531 Dart_Handle func_name; |
532 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); | 532 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); |
533 EXPECT_VALID(res); | 533 EXPECT_VALID(res); |
534 EXPECT(Dart_IsString(func_name)); | 534 EXPECT(Dart_IsString(func_name)); |
535 const char* name_chars; | 535 const char* name_chars; |
536 Dart_StringToCString(func_name, &name_chars); | 536 Dart_StringAsCString(func_name, &name_chars); |
537 if (verbose) { | 537 if (verbose) { |
538 OS::Print(" >> bpt nr %d: %s\n", breakpoint_hit_counter, name_chars); | 538 OS::Print(" >> bpt nr %d: %s\n", breakpoint_hit_counter, name_chars); |
539 } | 539 } |
540 if (breakpoint_hit_counter < expected_bpts_length) { | 540 if (breakpoint_hit_counter < expected_bpts_length) { |
541 EXPECT_STREQ(expected_bpts[breakpoint_hit_counter], name_chars); | 541 EXPECT_STREQ(expected_bpts[breakpoint_hit_counter], name_chars); |
542 } | 542 } |
543 breakpoint_hit = true; | 543 breakpoint_hit = true; |
544 breakpoint_hit_counter++; | 544 breakpoint_hit_counter++; |
545 Dart_SetStepOver(); | 545 Dart_SetStepOver(); |
546 } | 546 } |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
585 EXPECT_EQ(expected_trace_length, trace_len); | 585 EXPECT_EQ(expected_trace_length, trace_len); |
586 for (int i = 0; i < trace_len; i++) { | 586 for (int i = 0; i < trace_len; i++) { |
587 Dart_ActivationFrame frame; | 587 Dart_ActivationFrame frame; |
588 res = Dart_GetActivationFrame(trace, i, &frame); | 588 res = Dart_GetActivationFrame(trace, i, &frame); |
589 EXPECT_VALID(res); | 589 EXPECT_VALID(res); |
590 Dart_Handle func_name; | 590 Dart_Handle func_name; |
591 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); | 591 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); |
592 EXPECT_VALID(res); | 592 EXPECT_VALID(res); |
593 EXPECT(Dart_IsString(func_name)); | 593 EXPECT(Dart_IsString(func_name)); |
594 const char* name_chars; | 594 const char* name_chars; |
595 Dart_StringToCString(func_name, &name_chars); | 595 Dart_StringAsCString(func_name, &name_chars); |
596 EXPECT_STREQ(expected_trace[i], name_chars); | 596 EXPECT_STREQ(expected_trace[i], name_chars); |
597 if (verbose) OS::Print(" >> %d: %s\n", i, name_chars); | 597 if (verbose) OS::Print(" >> %d: %s\n", i, name_chars); |
598 } | 598 } |
599 } | 599 } |
600 | 600 |
601 | 601 |
602 TEST_CASE(Debug_ClosureBreakpoint) { | 602 TEST_CASE(Debug_ClosureBreakpoint) { |
603 const char* kScriptChars = | 603 const char* kScriptChars = |
604 "callback(s) { \n" | 604 "callback(s) { \n" |
605 " return 111; \n" | 605 " return 111; \n" |
(...skipping 19 matching lines...) Expand all Loading... |
625 EXPECT_EQ(442, int_value); | 625 EXPECT_EQ(442, int_value); |
626 EXPECT_EQ(2, breakpoint_hit_counter); | 626 EXPECT_EQ(2, breakpoint_hit_counter); |
627 } | 627 } |
628 | 628 |
629 | 629 |
630 static void ExprClosureBreakpointHandler(Dart_IsolateId isolate_id, | 630 static void ExprClosureBreakpointHandler(Dart_IsolateId isolate_id, |
631 Dart_Breakpoint bpt, | 631 Dart_Breakpoint bpt, |
632 Dart_StackTrace trace) { | 632 Dart_StackTrace trace) { |
633 static const char* expected_trace[] = {"add", "main"}; | 633 static const char* expected_trace[] = {"add", "main"}; |
634 Dart_Handle add_locals = Dart_NewList(4); | 634 Dart_Handle add_locals = Dart_NewList(4); |
635 Dart_ListSetAt(add_locals, 0, Dart_NewString("a")); | 635 Dart_ListSetAt(add_locals, 0, NewString("a")); |
636 Dart_ListSetAt(add_locals, 1, Dart_NewInteger(10)); | 636 Dart_ListSetAt(add_locals, 1, Dart_NewInteger(10)); |
637 Dart_ListSetAt(add_locals, 2, Dart_NewString("b")); | 637 Dart_ListSetAt(add_locals, 2, NewString("b")); |
638 Dart_ListSetAt(add_locals, 3, Dart_NewInteger(20)); | 638 Dart_ListSetAt(add_locals, 3, Dart_NewInteger(20)); |
639 Dart_Handle expected_locals[] = {add_locals, Dart_Null()}; | 639 Dart_Handle expected_locals[] = {add_locals, Dart_Null()}; |
640 breakpoint_hit_counter++; | 640 breakpoint_hit_counter++; |
641 PrintStackTrace(trace); | 641 PrintStackTrace(trace); |
642 VerifyStackTrace(trace, expected_trace, expected_locals, 2); | 642 VerifyStackTrace(trace, expected_trace, expected_locals, 2); |
643 } | 643 } |
644 | 644 |
645 | 645 |
646 TEST_CASE(Debug_ExprClosureBreakpoint) { | 646 TEST_CASE(Debug_ExprClosureBreakpoint) { |
647 const char* kScriptChars = | 647 const char* kScriptChars = |
648 "var c; \n" | 648 "var c; \n" |
649 " \n" | 649 " \n" |
650 "main() { \n" | 650 "main() { \n" |
651 " c = add(a, b) { \n" | 651 " c = add(a, b) { \n" |
652 " return a + b; \n" | 652 " return a + b; \n" |
653 " }; \n" | 653 " }; \n" |
654 " return c(10, 20); \n" | 654 " return c(10, 20); \n" |
655 "} \n"; | 655 "} \n"; |
656 | 656 |
657 LoadScript(kScriptChars); | 657 LoadScript(kScriptChars); |
658 Dart_SetBreakpointHandler(&ExprClosureBreakpointHandler); | 658 Dart_SetBreakpointHandler(&ExprClosureBreakpointHandler); |
659 | 659 |
660 Dart_Handle script_url = Dart_NewString(TestCase::url()); | 660 Dart_Handle script_url = NewString(TestCase::url()); |
661 intptr_t line_no = 5; // In closure 'add'. | 661 intptr_t line_no = 5; // In closure 'add'. |
662 Dart_Handle res = Dart_SetBreakpoint(script_url, line_no); | 662 Dart_Handle res = Dart_SetBreakpoint(script_url, line_no); |
663 EXPECT_VALID(res); | 663 EXPECT_VALID(res); |
664 EXPECT(Dart_IsInteger(res)); | 664 EXPECT(Dart_IsInteger(res)); |
665 | 665 |
666 breakpoint_hit_counter = 0; | 666 breakpoint_hit_counter = 0; |
667 Dart_Handle retval = Invoke("main"); | 667 Dart_Handle retval = Invoke("main"); |
668 EXPECT_VALID(retval); | 668 EXPECT_VALID(retval); |
669 int64_t int_value = 0; | 669 int64_t int_value = 0; |
670 Dart_IntegerToInt64(retval, &int_value); | 670 Dart_IntegerToInt64(retval, &int_value); |
(...skipping 16 matching lines...) Expand all Loading... |
687 EXPECT_EQ(expected_trace_length, trace_len); | 687 EXPECT_EQ(expected_trace_length, trace_len); |
688 for (int i = 0; i < trace_len; i++) { | 688 for (int i = 0; i < trace_len; i++) { |
689 Dart_ActivationFrame frame; | 689 Dart_ActivationFrame frame; |
690 res = Dart_GetActivationFrame(trace, i, &frame); | 690 res = Dart_GetActivationFrame(trace, i, &frame); |
691 EXPECT_VALID(res); | 691 EXPECT_VALID(res); |
692 Dart_Handle func_name; | 692 Dart_Handle func_name; |
693 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); | 693 res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); |
694 EXPECT_VALID(res); | 694 EXPECT_VALID(res); |
695 EXPECT(Dart_IsString(func_name)); | 695 EXPECT(Dart_IsString(func_name)); |
696 const char* name_chars; | 696 const char* name_chars; |
697 Dart_StringToCString(func_name, &name_chars); | 697 Dart_StringAsCString(func_name, &name_chars); |
698 EXPECT_STREQ(expected_trace[i], name_chars); | 698 EXPECT_STREQ(expected_trace[i], name_chars); |
699 if (verbose) OS::Print(" >> %d: %s\n", i, name_chars); | 699 if (verbose) OS::Print(" >> %d: %s\n", i, name_chars); |
700 } | 700 } |
701 // Remove the breakpoint after we've hit it twice | 701 // Remove the breakpoint after we've hit it twice |
702 if (breakpoint_hit_counter == 2) { | 702 if (breakpoint_hit_counter == 2) { |
703 if (verbose) OS::Print("uninstalling breakpoint\n"); | 703 if (verbose) OS::Print("uninstalling breakpoint\n"); |
704 Dart_Handle res = Dart_RemoveBreakpoint(bp_id_to_be_deleted); | 704 Dart_Handle res = Dart_RemoveBreakpoint(bp_id_to_be_deleted); |
705 EXPECT_VALID(res); | 705 EXPECT_VALID(res); |
706 } | 706 } |
707 } | 707 } |
708 | 708 |
709 | 709 |
710 TEST_CASE(Debug_DeleteBreakpoint) { | 710 TEST_CASE(Debug_DeleteBreakpoint) { |
711 const char* kScriptChars = | 711 const char* kScriptChars = |
712 "moo(s) { } \n" | 712 "moo(s) { } \n" |
713 " \n" | 713 " \n" |
714 "foo() { \n" | 714 "foo() { \n" |
715 " moo('good news'); \n" | 715 " moo('good news'); \n" |
716 "} \n" | 716 "} \n" |
717 " \n" | 717 " \n" |
718 "void main() { \n" | 718 "void main() { \n" |
719 " foo(); \n" | 719 " foo(); \n" |
720 " foo(); \n" | 720 " foo(); \n" |
721 " foo(); \n" | 721 " foo(); \n" |
722 "} \n"; | 722 "} \n"; |
723 | 723 |
724 LoadScript(kScriptChars); | 724 LoadScript(kScriptChars); |
725 | 725 |
726 Dart_Handle script_url = Dart_NewString(TestCase::url()); | 726 Dart_Handle script_url = NewString(TestCase::url()); |
727 intptr_t line_no = 4; // In function 'foo'. | 727 intptr_t line_no = 4; // In function 'foo'. |
728 | 728 |
729 Dart_SetBreakpointHandler(&DeleteBreakpointHandler); | 729 Dart_SetBreakpointHandler(&DeleteBreakpointHandler); |
730 | 730 |
731 Dart_Handle res = Dart_SetBreakpoint(script_url, line_no); | 731 Dart_Handle res = Dart_SetBreakpoint(script_url, line_no); |
732 EXPECT_VALID(res); | 732 EXPECT_VALID(res); |
733 EXPECT(Dart_IsInteger(res)); | 733 EXPECT(Dart_IsInteger(res)); |
734 int64_t bp_id = 0; | 734 int64_t bp_id = 0; |
735 Dart_IntegerToInt64(res, &bp_id); | 735 Dart_IntegerToInt64(res, &bp_id); |
736 | 736 |
737 // Function main() calls foo() 3 times. On the second iteration, the | 737 // Function main() calls foo() 3 times. On the second iteration, the |
738 // breakpoint is removed by the handler, so we expect the breakpoint | 738 // breakpoint is removed by the handler, so we expect the breakpoint |
739 // to fire twice only. | 739 // to fire twice only. |
740 bp_id_to_be_deleted = bp_id; | 740 bp_id_to_be_deleted = bp_id; |
741 breakpoint_hit_counter = 0; | 741 breakpoint_hit_counter = 0; |
742 Dart_Handle retval = Invoke("main"); | 742 Dart_Handle retval = Invoke("main"); |
743 EXPECT_VALID(retval); | 743 EXPECT_VALID(retval); |
744 EXPECT_EQ(2, breakpoint_hit_counter); | 744 EXPECT_EQ(2, breakpoint_hit_counter); |
745 } | 745 } |
746 | 746 |
747 | 747 |
748 static void InspectStaticFieldHandler(Dart_IsolateId isolate_id, | 748 static void InspectStaticFieldHandler(Dart_IsolateId isolate_id, |
749 Dart_Breakpoint bpt, | 749 Dart_Breakpoint bpt, |
750 Dart_StackTrace trace) { | 750 Dart_StackTrace trace) { |
751 ASSERT(script_lib != NULL); | 751 ASSERT(script_lib != NULL); |
752 ASSERT(!Dart_IsError(script_lib)); | 752 ASSERT(!Dart_IsError(script_lib)); |
753 ASSERT(Dart_IsLibrary(script_lib)); | 753 ASSERT(Dart_IsLibrary(script_lib)); |
754 Dart_Handle class_A = Dart_GetClass(script_lib, Dart_NewString("A")); | 754 Dart_Handle class_A = Dart_GetClass(script_lib, NewString("A")); |
755 EXPECT_VALID(class_A); | 755 EXPECT_VALID(class_A); |
756 | 756 |
757 const int expected_num_fields = 2; | 757 const int expected_num_fields = 2; |
758 struct { | 758 struct { |
759 const char* field_name; | 759 const char* field_name; |
760 const char* field_value; | 760 const char* field_value; |
761 } expected[] = { | 761 } expected[] = { |
762 // Expected values at first breakpoint. | 762 // Expected values at first breakpoint. |
763 { "bla", "yada yada yada"}, | 763 { "bla", "yada yada yada"}, |
764 { "u", "null" }, | 764 { "u", "null" }, |
(...skipping 14 matching lines...) Expand all Loading... |
779 EXPECT_VALID(retval); | 779 EXPECT_VALID(retval); |
780 int num_fields = list_length / 2; | 780 int num_fields = list_length / 2; |
781 OS::Print("Class A has %d fields:\n", num_fields); | 781 OS::Print("Class A has %d fields:\n", num_fields); |
782 ASSERT(expected_num_fields == num_fields); | 782 ASSERT(expected_num_fields == num_fields); |
783 | 783 |
784 for (int i = 0; i + 1 < list_length; i += 2) { | 784 for (int i = 0; i + 1 < list_length; i += 2) { |
785 Dart_Handle name_handle = Dart_ListGetAt(fields, i); | 785 Dart_Handle name_handle = Dart_ListGetAt(fields, i); |
786 EXPECT_VALID(name_handle); | 786 EXPECT_VALID(name_handle); |
787 EXPECT(Dart_IsString(name_handle)); | 787 EXPECT(Dart_IsString(name_handle)); |
788 char const* name; | 788 char const* name; |
789 Dart_StringToCString(name_handle, &name); | 789 Dart_StringAsCString(name_handle, &name); |
790 EXPECT_STREQ(expected[expected_idx].field_name, name); | 790 EXPECT_STREQ(expected[expected_idx].field_name, name); |
791 Dart_Handle value_handle = Dart_ListGetAt(fields, i + 1); | 791 Dart_Handle value_handle = Dart_ListGetAt(fields, i + 1); |
792 EXPECT_VALID(value_handle); | 792 EXPECT_VALID(value_handle); |
793 value_handle = Dart_ToString(value_handle); | 793 value_handle = Dart_ToString(value_handle); |
794 EXPECT_VALID(value_handle); | 794 EXPECT_VALID(value_handle); |
795 EXPECT(Dart_IsString(value_handle)); | 795 EXPECT(Dart_IsString(value_handle)); |
796 char const* value; | 796 char const* value; |
797 Dart_StringToCString(value_handle, &value); | 797 Dart_StringAsCString(value_handle, &value); |
798 EXPECT_STREQ(expected[expected_idx].field_value, value); | 798 EXPECT_STREQ(expected[expected_idx].field_value, value); |
799 OS::Print(" %s: %s\n", name, value); | 799 OS::Print(" %s: %s\n", name, value); |
800 expected_idx++; | 800 expected_idx++; |
801 } | 801 } |
802 } | 802 } |
803 | 803 |
804 | 804 |
805 TEST_CASE(Debug_InspectStaticField) { | 805 TEST_CASE(Debug_InspectStaticField) { |
806 const char* kScriptChars = | 806 const char* kScriptChars = |
807 " class A { \n" | 807 " class A { \n" |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
859 Dart_Handle retval = Dart_ListLength(fields, &list_length); | 859 Dart_Handle retval = Dart_ListLength(fields, &list_length); |
860 EXPECT_VALID(retval); | 860 EXPECT_VALID(retval); |
861 int num_fields = list_length / 2; | 861 int num_fields = list_length / 2; |
862 EXPECT_EQ(kNumObjectFields, num_fields); | 862 EXPECT_EQ(kNumObjectFields, num_fields); |
863 OS::Print("Object has %d fields:\n", num_fields); | 863 OS::Print("Object has %d fields:\n", num_fields); |
864 for (int i = 0; i + 1 < list_length; i += 2) { | 864 for (int i = 0; i + 1 < list_length; i += 2) { |
865 Dart_Handle name_handle = Dart_ListGetAt(fields, i); | 865 Dart_Handle name_handle = Dart_ListGetAt(fields, i); |
866 EXPECT_VALID(name_handle); | 866 EXPECT_VALID(name_handle); |
867 EXPECT(Dart_IsString(name_handle)); | 867 EXPECT(Dart_IsString(name_handle)); |
868 char const* name; | 868 char const* name; |
869 Dart_StringToCString(name_handle, &name); | 869 Dart_StringAsCString(name_handle, &name); |
870 Dart_Handle value_handle = Dart_ListGetAt(fields, i + 1); | 870 Dart_Handle value_handle = Dart_ListGetAt(fields, i + 1); |
871 EXPECT_VALID(value_handle); | 871 EXPECT_VALID(value_handle); |
872 value_handle = Dart_ToString(value_handle); | 872 value_handle = Dart_ToString(value_handle); |
873 EXPECT_VALID(value_handle); | 873 EXPECT_VALID(value_handle); |
874 EXPECT(Dart_IsString(value_handle)); | 874 EXPECT(Dart_IsString(value_handle)); |
875 char const* value; | 875 char const* value; |
876 Dart_StringToCString(value_handle, &value); | 876 Dart_StringAsCString(value_handle, &value); |
877 OS::Print(" %s: %s\n", name, value); | 877 OS::Print(" %s: %s\n", name, value); |
878 } | 878 } |
879 | 879 |
880 // Check that an integer value returns an empty list of fields. | 880 // Check that an integer value returns an empty list of fields. |
881 Dart_Handle triple_six = Invoke("get_int"); | 881 Dart_Handle triple_six = Invoke("get_int"); |
882 EXPECT_VALID(triple_six); | 882 EXPECT_VALID(triple_six); |
883 EXPECT(Dart_IsInteger(triple_six)); | 883 EXPECT(Dart_IsInteger(triple_six)); |
884 int64_t int_value = 0; | 884 int64_t int_value = 0; |
885 Dart_IntegerToInt64(triple_six, &int_value); | 885 Dart_IntegerToInt64(triple_six, &int_value); |
886 EXPECT_EQ(666, int_value); | 886 EXPECT_EQ(666, int_value); |
(...skipping 11 matching lines...) Expand all Loading... |
898 EXPECT_VALID(fields); | 898 EXPECT_VALID(fields); |
899 EXPECT(Dart_IsList(fields)); | 899 EXPECT(Dart_IsList(fields)); |
900 list_length = 0; | 900 list_length = 0; |
901 retval = Dart_ListLength(fields, &list_length); | 901 retval = Dart_ListLength(fields, &list_length); |
902 EXPECT_VALID(retval); | 902 EXPECT_VALID(retval); |
903 EXPECT_EQ(2, list_length); | 903 EXPECT_EQ(2, list_length); |
904 Dart_Handle name_handle = Dart_ListGetAt(fields, 0); | 904 Dart_Handle name_handle = Dart_ListGetAt(fields, 0); |
905 EXPECT_VALID(name_handle); | 905 EXPECT_VALID(name_handle); |
906 EXPECT(Dart_IsString(name_handle)); | 906 EXPECT(Dart_IsString(name_handle)); |
907 char const* name; | 907 char const* name; |
908 Dart_StringToCString(name_handle, &name); | 908 Dart_StringAsCString(name_handle, &name); |
909 EXPECT_STREQ("bla", name); | 909 EXPECT_STREQ("bla", name); |
910 Dart_Handle value_handle = Dart_ListGetAt(fields, 1); | 910 Dart_Handle value_handle = Dart_ListGetAt(fields, 1); |
911 EXPECT_VALID(value_handle); | 911 EXPECT_VALID(value_handle); |
912 value_handle = Dart_ToString(value_handle); | 912 value_handle = Dart_ToString(value_handle); |
913 EXPECT_VALID(value_handle); | 913 EXPECT_VALID(value_handle); |
914 EXPECT(Dart_IsString(value_handle)); | 914 EXPECT(Dart_IsString(value_handle)); |
915 char const* value; | 915 char const* value; |
916 Dart_StringToCString(value_handle, &value); | 916 Dart_StringAsCString(value_handle, &value); |
917 EXPECT_STREQ("blah blah", value); | 917 EXPECT_STREQ("blah blah", value); |
918 | 918 |
919 // Check static field of B's superclass. | 919 // Check static field of B's superclass. |
920 Dart_Handle class_A = Dart_GetSuperclass(class_B); | 920 Dart_Handle class_A = Dart_GetSuperclass(class_B); |
921 EXPECT_VALID(class_A); | 921 EXPECT_VALID(class_A); |
922 EXPECT(!Dart_IsNull(class_A)); | 922 EXPECT(!Dart_IsNull(class_A)); |
923 fields = Dart_GetStaticFields(class_A); | 923 fields = Dart_GetStaticFields(class_A); |
924 EXPECT_VALID(fields); | 924 EXPECT_VALID(fields); |
925 EXPECT(Dart_IsList(fields)); | 925 EXPECT(Dart_IsList(fields)); |
926 list_length = 0; | 926 list_length = 0; |
927 retval = Dart_ListLength(fields, &list_length); | 927 retval = Dart_ListLength(fields, &list_length); |
928 EXPECT_VALID(retval); | 928 EXPECT_VALID(retval); |
929 EXPECT_EQ(4, list_length); | 929 EXPECT_EQ(4, list_length); |
930 // Static field "bla" should have value "yada yada yada". | 930 // Static field "bla" should have value "yada yada yada". |
931 name_handle = Dart_ListGetAt(fields, 0); | 931 name_handle = Dart_ListGetAt(fields, 0); |
932 EXPECT_VALID(name_handle); | 932 EXPECT_VALID(name_handle); |
933 EXPECT(Dart_IsString(name_handle)); | 933 EXPECT(Dart_IsString(name_handle)); |
934 Dart_StringToCString(name_handle, &name); | 934 Dart_StringAsCString(name_handle, &name); |
935 EXPECT_STREQ("bla", name); | 935 EXPECT_STREQ("bla", name); |
936 value_handle = Dart_ListGetAt(fields, 1); | 936 value_handle = Dart_ListGetAt(fields, 1); |
937 EXPECT_VALID(value_handle); | 937 EXPECT_VALID(value_handle); |
938 value_handle = Dart_ToString(value_handle); | 938 value_handle = Dart_ToString(value_handle); |
939 EXPECT_VALID(value_handle); | 939 EXPECT_VALID(value_handle); |
940 EXPECT(Dart_IsString(value_handle)); | 940 EXPECT(Dart_IsString(value_handle)); |
941 Dart_StringToCString(value_handle, &value); | 941 Dart_StringAsCString(value_handle, &value); |
942 EXPECT_STREQ("yada yada yada", value); | 942 EXPECT_STREQ("yada yada yada", value); |
943 // The static field "error" should result in a compile error. | 943 // The static field "error" should result in a compile error. |
944 name_handle = Dart_ListGetAt(fields, 2); | 944 name_handle = Dart_ListGetAt(fields, 2); |
945 EXPECT_VALID(name_handle); | 945 EXPECT_VALID(name_handle); |
946 EXPECT(Dart_IsString(name_handle)); | 946 EXPECT(Dart_IsString(name_handle)); |
947 Dart_StringToCString(name_handle, &name); | 947 Dart_StringAsCString(name_handle, &name); |
948 EXPECT_STREQ("error", name); | 948 EXPECT_STREQ("error", name); |
949 value_handle = Dart_ListGetAt(fields, 3); | 949 value_handle = Dart_ListGetAt(fields, 3); |
950 EXPECT(Dart_IsError(value_handle)); | 950 EXPECT(Dart_IsError(value_handle)); |
951 } | 951 } |
952 | 952 |
953 | 953 |
954 TEST_CASE(Debug_LookupSourceLine) { | 954 TEST_CASE(Debug_LookupSourceLine) { |
955 const char* kScriptChars = | 955 const char* kScriptChars = |
956 /*1*/ "class A { \n" | 956 /*1*/ "class A { \n" |
957 /*2*/ " static void foo() { \n" | 957 /*2*/ " static void foo() { \n" |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
992 | 992 |
993 Dart_Handle libs = Dart_GetLibraryURLs(); | 993 Dart_Handle libs = Dart_GetLibraryURLs(); |
994 EXPECT(Dart_IsList(libs)); | 994 EXPECT(Dart_IsList(libs)); |
995 intptr_t num_libs; | 995 intptr_t num_libs; |
996 Dart_ListLength(libs, &num_libs); | 996 Dart_ListLength(libs, &num_libs); |
997 EXPECT(num_libs > 0); | 997 EXPECT(num_libs > 0); |
998 for (int i = 0; i < num_libs; i++) { | 998 for (int i = 0; i < num_libs; i++) { |
999 Dart_Handle lib_url = Dart_ListGetAt(libs, i); | 999 Dart_Handle lib_url = Dart_ListGetAt(libs, i); |
1000 EXPECT(Dart_IsString(lib_url)); | 1000 EXPECT(Dart_IsString(lib_url)); |
1001 char const* chars; | 1001 char const* chars; |
1002 Dart_StringToCString(lib_url, &chars); | 1002 Dart_StringAsCString(lib_url, &chars); |
1003 OS::Print("Lib %d: %s\n", i, chars); | 1003 OS::Print("Lib %d: %s\n", i, chars); |
1004 | 1004 |
1005 Dart_Handle scripts = Dart_GetScriptURLs(lib_url); | 1005 Dart_Handle scripts = Dart_GetScriptURLs(lib_url); |
1006 EXPECT(Dart_IsList(scripts)); | 1006 EXPECT(Dart_IsList(scripts)); |
1007 intptr_t num_scripts; | 1007 intptr_t num_scripts; |
1008 Dart_ListLength(scripts, &num_scripts); | 1008 Dart_ListLength(scripts, &num_scripts); |
1009 EXPECT(num_scripts >= 0); | 1009 EXPECT(num_scripts >= 0); |
1010 for (int i = 0; i < num_scripts; i++) { | 1010 for (int i = 0; i < num_scripts; i++) { |
1011 Dart_Handle script_url = Dart_ListGetAt(scripts, i); | 1011 Dart_Handle script_url = Dart_ListGetAt(scripts, i); |
1012 char const* chars; | 1012 char const* chars; |
1013 Dart_StringToCString(script_url, &chars); | 1013 Dart_StringAsCString(script_url, &chars); |
1014 OS::Print(" script %d: '%s'\n", i + 1, chars); | 1014 OS::Print(" script %d: '%s'\n", i + 1, chars); |
1015 } | 1015 } |
1016 } | 1016 } |
1017 | 1017 |
1018 Dart_Handle lib_url = Dart_NewString(TestCase::url()); | 1018 Dart_Handle lib_url = NewString(TestCase::url()); |
1019 Dart_Handle source = Dart_GetScriptSource(lib_url, lib_url); | 1019 Dart_Handle source = Dart_GetScriptSource(lib_url, lib_url); |
1020 EXPECT(Dart_IsString(source)); | 1020 EXPECT(Dart_IsString(source)); |
1021 char const* source_chars; | 1021 char const* source_chars; |
1022 Dart_StringToCString(source, &source_chars); | 1022 Dart_StringAsCString(source, &source_chars); |
1023 OS::Print("\n=== source: ===\n%s", source_chars); | 1023 OS::Print("\n=== source: ===\n%s", source_chars); |
1024 EXPECT_STREQ(kScriptChars, source_chars); | 1024 EXPECT_STREQ(kScriptChars, source_chars); |
1025 } | 1025 } |
1026 | 1026 |
1027 | 1027 |
1028 TEST_CASE(GetLibraryURLs) { | 1028 TEST_CASE(GetLibraryURLs) { |
1029 const char* kScriptChars = | 1029 const char* kScriptChars = |
1030 "main() {" | 1030 "main() {" |
1031 " return 12345;" | 1031 " return 12345;" |
1032 "}"; | 1032 "}"; |
1033 | 1033 |
1034 Dart_Handle lib_list = Dart_GetLibraryURLs(); | 1034 Dart_Handle lib_list = Dart_GetLibraryURLs(); |
1035 EXPECT_VALID(lib_list); | 1035 EXPECT_VALID(lib_list); |
1036 EXPECT(Dart_IsList(lib_list)); | 1036 EXPECT(Dart_IsList(lib_list)); |
1037 Dart_Handle list_as_string = Dart_ToString(lib_list); | 1037 Dart_Handle list_as_string = Dart_ToString(lib_list); |
1038 const char* list_cstr = ""; | 1038 const char* list_cstr = ""; |
1039 EXPECT_VALID(Dart_StringToCString(list_as_string, &list_cstr)); | 1039 EXPECT_VALID(Dart_StringAsCString(list_as_string, &list_cstr)); |
1040 EXPECT_NOTSUBSTRING(TestCase::url(), list_cstr); | 1040 EXPECT_NOTSUBSTRING(TestCase::url(), list_cstr); |
1041 | 1041 |
1042 // Load a script. | 1042 // Load a script. |
1043 Dart_Handle url = Dart_NewString(TestCase::url()); | 1043 Dart_Handle url = NewString(TestCase::url()); |
1044 Dart_Handle source = Dart_NewString(kScriptChars); | 1044 Dart_Handle source = NewString(kScriptChars); |
1045 EXPECT_VALID(Dart_LoadScript(url, source)); | 1045 EXPECT_VALID(Dart_LoadScript(url, source)); |
1046 | 1046 |
1047 lib_list = Dart_GetLibraryURLs(); | 1047 lib_list = Dart_GetLibraryURLs(); |
1048 EXPECT_VALID(lib_list); | 1048 EXPECT_VALID(lib_list); |
1049 EXPECT(Dart_IsList(lib_list)); | 1049 EXPECT(Dart_IsList(lib_list)); |
1050 list_as_string = Dart_ToString(lib_list); | 1050 list_as_string = Dart_ToString(lib_list); |
1051 list_cstr = ""; | 1051 list_cstr = ""; |
1052 EXPECT_VALID(Dart_StringToCString(list_as_string, &list_cstr)); | 1052 EXPECT_VALID(Dart_StringAsCString(list_as_string, &list_cstr)); |
1053 EXPECT_SUBSTRING(TestCase::url(), list_cstr); | 1053 EXPECT_SUBSTRING(TestCase::url(), list_cstr); |
1054 } | 1054 } |
1055 | 1055 |
1056 | 1056 |
1057 static Dart_IsolateId test_isolate_id = ILLEGAL_ISOLATE_ID; | 1057 static Dart_IsolateId test_isolate_id = ILLEGAL_ISOLATE_ID; |
1058 static int verify_callback = 0; | 1058 static int verify_callback = 0; |
1059 static void TestIsolateID(Dart_IsolateId isolate_id, Dart_IsolateEvent kind) { | 1059 static void TestIsolateID(Dart_IsolateId isolate_id, Dart_IsolateEvent kind) { |
1060 if (kind == kCreated) { | 1060 if (kind == kCreated) { |
1061 EXPECT(test_isolate_id == ILLEGAL_ISOLATE_ID); | 1061 EXPECT(test_isolate_id == ILLEGAL_ISOLATE_ID); |
1062 test_isolate_id = isolate_id; | 1062 test_isolate_id = isolate_id; |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1220 while (interrupt_isolate_id != ILLEGAL_ISOLATE_ID) { | 1220 while (interrupt_isolate_id != ILLEGAL_ISOLATE_ID) { |
1221 ml.Wait(); | 1221 ml.Wait(); |
1222 } | 1222 } |
1223 } | 1223 } |
1224 EXPECT(interrupt_isolate_id == ILLEGAL_ISOLATE_ID); | 1224 EXPECT(interrupt_isolate_id == ILLEGAL_ISOLATE_ID); |
1225 } | 1225 } |
1226 | 1226 |
1227 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). | 1227 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). |
1228 | 1228 |
1229 } // namespace dart | 1229 } // namespace dart |
OLD | NEW |