| OLD | NEW |
| 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 "platform/globals.h" | 5 #include "platform/globals.h" |
| 6 | 6 |
| 7 #include "include/dart_debugger_api.h" | 7 #include "include/dart_debugger_api.h" |
| 8 #include "vm/dart_api_impl.h" | 8 #include "vm/dart_api_impl.h" |
| 9 #include "vm/dart_entry.h" | 9 #include "vm/dart_entry.h" |
| 10 #include "vm/debugger.h" | 10 #include "vm/debugger.h" |
| (...skipping 505 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 516 EXPECT_VALID(valid_id); | 516 EXPECT_VALID(valid_id); |
| 517 EXPECT_VALID(Dart_SetField(lib, NewString("validId"), valid_id)); | 517 EXPECT_VALID(Dart_SetField(lib, NewString("validId"), valid_id)); |
| 518 | 518 |
| 519 Array& service_msg = Array::Handle(); | 519 Array& service_msg = Array::Handle(); |
| 520 | 520 |
| 521 // null | 521 // null |
| 522 service_msg = Eval(lib, "[0, port, ['objects', 'null'], [], []]"); | 522 service_msg = Eval(lib, "[0, port, ['objects', 'null'], [], []]"); |
| 523 Service::HandleIsolateMessage(isolate, service_msg); | 523 Service::HandleIsolateMessage(isolate, service_msg); |
| 524 handler.HandleNextMessage(); | 524 handler.HandleNextMessage(); |
| 525 handler.filterMsg("vmName"); | 525 handler.filterMsg("vmName"); |
| 526 EXPECT_STREQ( | 526 EXPECT_SUBSTRING( |
| 527 "{\"type\":\"Null\",\"id\":\"objects\\/null\"," | 527 "{\"type\":\"Null\",\"id\":\"objects\\/null\"," |
| 528 "\"valueAsString\":\"null\"}", | 528 "\"valueAsString\":\"null\",\"class\":", |
| 529 handler.msg()); | 529 handler.msg()); |
| 530 | 530 |
| 531 // not initialized | 531 // not initialized |
| 532 service_msg = Eval(lib, "[0, port, ['objects', 'not-initialized'], [], []]"); | 532 service_msg = Eval(lib, "[0, port, ['objects', 'not-initialized'], [], []]"); |
| 533 Service::HandleIsolateMessage(isolate, service_msg); | 533 Service::HandleIsolateMessage(isolate, service_msg); |
| 534 handler.HandleNextMessage(); | 534 handler.HandleNextMessage(); |
| 535 handler.filterMsg("vmName"); | 535 handler.filterMsg("vmName"); |
| 536 EXPECT_STREQ( | 536 EXPECT_STREQ( |
| 537 "{\"type\":\"Null\",\"id\":\"objects\\/not-initialized\"," | 537 "{\"type\":\"Null\",\"id\":\"objects\\/not-initialized\"," |
| 538 "\"valueAsString\":\"<not initialized>\"}", | 538 "\"valueAsString\":\"<not initialized>\"}", |
| (...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1094 Service::HandleIsolateMessage(isolate, service_msg); | 1094 Service::HandleIsolateMessage(isolate, service_msg); |
| 1095 handler.HandleNextMessage(); | 1095 handler.HandleNextMessage(); |
| 1096 ExpectSubstringF(handler.msg(), "\"type\":\"InstanceSet\""); | 1096 ExpectSubstringF(handler.msg(), "\"type\":\"InstanceSet\""); |
| 1097 ExpectSubstringF(handler.msg(), "\"totalCount\":2"); | 1097 ExpectSubstringF(handler.msg(), "\"totalCount\":2"); |
| 1098 ExpectSubstringF(handler.msg(), "\"sampleCount\":2"); | 1098 ExpectSubstringF(handler.msg(), "\"sampleCount\":2"); |
| 1099 // TODO(koda): Actually parse the response. | 1099 // TODO(koda): Actually parse the response. |
| 1100 static const intptr_t kInstanceListId = 0; | 1100 static const intptr_t kInstanceListId = 0; |
| 1101 ExpectSubstringF(handler.msg(), "\"id\":\"objects\\/%" Pd "\",\"length\":2", | 1101 ExpectSubstringF(handler.msg(), "\"id\":\"objects\\/%" Pd "\",\"length\":2", |
| 1102 kInstanceListId); | 1102 kInstanceListId); |
| 1103 Array& list = Array::Handle(); | 1103 Array& list = Array::Handle(); |
| 1104 list ^= isolate->object_id_ring()->GetObjectForId(kInstanceListId); | 1104 ObjectIdRing::LookupResult kind; |
| 1105 list ^= isolate->object_id_ring()->GetObjectForId(kInstanceListId, &kind); |
| 1105 EXPECT_EQ(2, list.Length()); | 1106 EXPECT_EQ(2, list.Length()); |
| 1106 // The list should contain {b0, b1}. | 1107 // The list should contain {b0, b1}. |
| 1107 EXPECT((list.At(0) == b0.raw() && list.At(1) == b1.raw()) || | 1108 EXPECT((list.At(0) == b0.raw() && list.At(1) == b1.raw()) || |
| 1108 (list.At(0) == b1.raw() && list.At(1) == b0.raw())); | 1109 (list.At(0) == b1.raw() && list.At(1) == b0.raw())); |
| 1109 // ... and if limit is 1, we one get one of them. | 1110 // ... and if limit is 1, we one get one of them. |
| 1110 service_msg = EvalF(lib, "[0, port, ['classes', '%" Pd "', 'instances']," | 1111 service_msg = EvalF(lib, "[0, port, ['classes', '%" Pd "', 'instances']," |
| 1111 "['limit'], ['1']]", class_b.id()); | 1112 "['limit'], ['1']]", class_b.id()); |
| 1112 Service::HandleIsolateMessage(isolate, service_msg); | 1113 Service::HandleIsolateMessage(isolate, service_msg); |
| 1113 handler.HandleNextMessage(); | 1114 handler.HandleNextMessage(); |
| 1114 ExpectSubstringF(handler.msg(), "\"totalCount\":2"); | 1115 ExpectSubstringF(handler.msg(), "\"totalCount\":2"); |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1317 address); | 1318 address); |
| 1318 EXPECT_SUBSTRING(buffer, handler.msg()); | 1319 EXPECT_SUBSTRING(buffer, handler.msg()); |
| 1319 } | 1320 } |
| 1320 | 1321 |
| 1321 // Request native code at address. Expect the null code object back. | 1322 // Request native code at address. Expect the null code object back. |
| 1322 address = last; | 1323 address = last; |
| 1323 service_msg = EvalF(lib, "[0, port, ['code', 'native-%" Px "'], [], []]", | 1324 service_msg = EvalF(lib, "[0, port, ['code', 'native-%" Px "'], [], []]", |
| 1324 address); | 1325 address); |
| 1325 Service::HandleIsolateMessage(isolate, service_msg); | 1326 Service::HandleIsolateMessage(isolate, service_msg); |
| 1326 handler.HandleNextMessage(); | 1327 handler.HandleNextMessage(); |
| 1327 EXPECT_STREQ("{\"type\":\"Null\",\"id\":\"objects\\/null\"," | 1328 EXPECT_SUBSTRING("{\"type\":\"Null\",\"id\":\"objects\\/null\"," |
| 1328 "\"valueAsString\":\"null\"}", | 1329 "\"valueAsString\":\"null\"", |
| 1329 handler.msg()); | 1330 handler.msg()); |
| 1330 | 1331 |
| 1331 // Request malformed native code. | 1332 // Request malformed native code. |
| 1332 service_msg = EvalF(lib, "[0, port, ['code', 'native%" Px "'], [], []]", | 1333 service_msg = EvalF(lib, "[0, port, ['code', 'native%" Px "'], [], []]", |
| 1333 address); | 1334 address); |
| 1334 Service::HandleIsolateMessage(isolate, service_msg); | 1335 Service::HandleIsolateMessage(isolate, service_msg); |
| 1335 handler.HandleNextMessage(); | 1336 handler.HandleNextMessage(); |
| 1336 EXPECT_SUBSTRING("\"message\":\"Malformed code id:", handler.msg()); | 1337 EXPECT_SUBSTRING("\"message\":\"Malformed code id:", handler.msg()); |
| 1337 } | 1338 } |
| 1338 | 1339 |
| 1339 | 1340 |
| (...skipping 684 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2024 service_msg = Eval(lib, "[0, port, ['profile'], ['tags'], ['hidden']]"); | 2025 service_msg = Eval(lib, "[0, port, ['profile'], ['tags'], ['hidden']]"); |
| 2025 Service::HandleIsolateMessage(isolate, service_msg); | 2026 Service::HandleIsolateMessage(isolate, service_msg); |
| 2026 handler.HandleNextMessage(); | 2027 handler.HandleNextMessage(); |
| 2027 // Expect error. | 2028 // Expect error. |
| 2028 EXPECT_SUBSTRING("\"type\":\"Error\"", handler.msg()); | 2029 EXPECT_SUBSTRING("\"type\":\"Error\"", handler.msg()); |
| 2029 } | 2030 } |
| 2030 | 2031 |
| 2031 #endif // !defined(TARGET_ARCH_ARM64) | 2032 #endif // !defined(TARGET_ARCH_ARM64) |
| 2032 | 2033 |
| 2033 } // namespace dart | 2034 } // namespace dart |
| OLD | NEW |