| 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_tools_api.h" | 7 #include "include/dart_tools_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 553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 564 "['address'], ['7']]"); | 564 "['address'], ['7']]"); |
| 565 Service::HandleIsolateMessage(isolate, service_msg); | 565 Service::HandleIsolateMessage(isolate, service_msg); |
| 566 EXPECT_EQ(MessageHandler::kOK, handler.HandleNextMessage()); | 566 EXPECT_EQ(MessageHandler::kOK, handler.HandleNextMessage()); |
| 567 // TODO(turnidge): Should this be a ServiceException instead? | 567 // TODO(turnidge): Should this be a ServiceException instead? |
| 568 EXPECT_SUBSTRING("{\"type\":\"Sentinel\",\"kind\":\"Free\"," | 568 EXPECT_SUBSTRING("{\"type\":\"Sentinel\",\"kind\":\"Free\"," |
| 569 "\"valueAsString\":\"<free>\"", | 569 "\"valueAsString\":\"<free>\"", |
| 570 handler.msg()); | 570 handler.msg()); |
| 571 } | 571 } |
| 572 | 572 |
| 573 | 573 |
| 574 static const char* alpha_callback( | 574 static bool alpha_callback( |
| 575 const char* name, | 575 const char* name, |
| 576 const char** option_keys, | 576 const char** option_keys, |
| 577 const char** option_values, | 577 const char** option_values, |
| 578 intptr_t num_options, | 578 intptr_t num_options, |
| 579 void* user_data) { | 579 void* user_data, |
| 580 return strdup("alpha"); | 580 const char** result) { |
| 581 *result = strdup("alpha"); |
| 582 return true; |
| 581 } | 583 } |
| 582 | 584 |
| 583 | 585 |
| 584 static const char* beta_callback( | 586 static bool beta_callback( |
| 585 const char* name, | 587 const char* name, |
| 586 const char** option_keys, | 588 const char** option_keys, |
| 587 const char** option_values, | 589 const char** option_values, |
| 588 intptr_t num_options, | 590 intptr_t num_options, |
| 589 void* user_data) { | 591 void* user_data, |
| 590 return strdup("beta"); | 592 const char** result) { |
| 593 *result = strdup("beta"); |
| 594 return false; |
| 591 } | 595 } |
| 592 | 596 |
| 593 | 597 |
| 594 TEST_CASE(Service_EmbedderRootHandler) { | 598 TEST_CASE(Service_EmbedderRootHandler) { |
| 595 const char* kScript = | 599 const char* kScript = |
| 596 "var port;\n" // Set to our mock port by C++. | 600 "var port;\n" // Set to our mock port by C++. |
| 597 "\n" | 601 "\n" |
| 598 "var x = 7;\n" | 602 "var x = 7;\n" |
| 599 "main() {\n" | 603 "main() {\n" |
| 600 " x = x * x;\n" | 604 " x = x * x;\n" |
| (...skipping 18 matching lines...) Expand all Loading... |
| 619 | 623 |
| 620 Array& service_msg = Array::Handle(); | 624 Array& service_msg = Array::Handle(); |
| 621 service_msg = Eval(lib, "[0, port, '\"', 'alpha', [], []]"); | 625 service_msg = Eval(lib, "[0, port, '\"', 'alpha', [], []]"); |
| 622 Service::HandleRootMessage(service_msg); | 626 Service::HandleRootMessage(service_msg); |
| 623 EXPECT_EQ(MessageHandler::kOK, handler.HandleNextMessage()); | 627 EXPECT_EQ(MessageHandler::kOK, handler.HandleNextMessage()); |
| 624 EXPECT_STREQ("{\"jsonrpc\":\"2.0\", \"result\":alpha,\"id\":\"\\\"\"}", | 628 EXPECT_STREQ("{\"jsonrpc\":\"2.0\", \"result\":alpha,\"id\":\"\\\"\"}", |
| 625 handler.msg()); | 629 handler.msg()); |
| 626 service_msg = Eval(lib, "[0, port, 1, 'beta', [], []]"); | 630 service_msg = Eval(lib, "[0, port, 1, 'beta', [], []]"); |
| 627 Service::HandleRootMessage(service_msg); | 631 Service::HandleRootMessage(service_msg); |
| 628 EXPECT_EQ(MessageHandler::kOK, handler.HandleNextMessage()); | 632 EXPECT_EQ(MessageHandler::kOK, handler.HandleNextMessage()); |
| 629 EXPECT_STREQ("{\"jsonrpc\":\"2.0\", \"result\":beta,\"id\":1}", | 633 EXPECT_STREQ("{\"jsonrpc\":\"2.0\", \"error\":beta,\"id\":1}", |
| 630 handler.msg()); | 634 handler.msg()); |
| 631 } | 635 } |
| 632 | 636 |
| 633 | 637 |
| 634 TEST_CASE(Service_EmbedderIsolateHandler) { | 638 TEST_CASE(Service_EmbedderIsolateHandler) { |
| 635 const char* kScript = | 639 const char* kScript = |
| 636 "var port;\n" // Set to our mock port by C++. | 640 "var port;\n" // Set to our mock port by C++. |
| 637 "\n" | 641 "\n" |
| 638 "var x = 7;\n" | 642 "var x = 7;\n" |
| 639 "main() {\n" | 643 "main() {\n" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 659 | 663 |
| 660 Array& service_msg = Array::Handle(); | 664 Array& service_msg = Array::Handle(); |
| 661 service_msg = Eval(lib, "[0, port, '0', 'alpha', [], []]"); | 665 service_msg = Eval(lib, "[0, port, '0', 'alpha', [], []]"); |
| 662 Service::HandleIsolateMessage(isolate, service_msg); | 666 Service::HandleIsolateMessage(isolate, service_msg); |
| 663 EXPECT_EQ(MessageHandler::kOK, handler.HandleNextMessage()); | 667 EXPECT_EQ(MessageHandler::kOK, handler.HandleNextMessage()); |
| 664 EXPECT_STREQ("{\"jsonrpc\":\"2.0\", \"result\":alpha,\"id\":\"0\"}", | 668 EXPECT_STREQ("{\"jsonrpc\":\"2.0\", \"result\":alpha,\"id\":\"0\"}", |
| 665 handler.msg()); | 669 handler.msg()); |
| 666 service_msg = Eval(lib, "[0, port, '0', 'beta', [], []]"); | 670 service_msg = Eval(lib, "[0, port, '0', 'beta', [], []]"); |
| 667 Service::HandleIsolateMessage(isolate, service_msg); | 671 Service::HandleIsolateMessage(isolate, service_msg); |
| 668 EXPECT_EQ(MessageHandler::kOK, handler.HandleNextMessage()); | 672 EXPECT_EQ(MessageHandler::kOK, handler.HandleNextMessage()); |
| 669 EXPECT_STREQ("{\"jsonrpc\":\"2.0\", \"result\":beta,\"id\":\"0\"}", | 673 EXPECT_STREQ("{\"jsonrpc\":\"2.0\", \"error\":beta,\"id\":\"0\"}", |
| 670 handler.msg()); | 674 handler.msg()); |
| 671 } | 675 } |
| 672 | 676 |
| 673 // TODO(zra): Remove when tests are ready to enable. | 677 // TODO(zra): Remove when tests are ready to enable. |
| 674 #if !defined(TARGET_ARCH_ARM64) | 678 #if !defined(TARGET_ARCH_ARM64) |
| 675 | 679 |
| 676 TEST_CASE(Service_Profile) { | 680 TEST_CASE(Service_Profile) { |
| 677 const char* kScript = | 681 const char* kScript = |
| 678 "var port;\n" // Set to our mock port by C++. | 682 "var port;\n" // Set to our mock port by C++. |
| 679 "\n" | 683 "\n" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 717 EXPECT_EQ(MessageHandler::kOK, handler.HandleNextMessage()); | 721 EXPECT_EQ(MessageHandler::kOK, handler.HandleNextMessage()); |
| 718 // Expect error. | 722 // Expect error. |
| 719 EXPECT_SUBSTRING("\"error\"", handler.msg()); | 723 EXPECT_SUBSTRING("\"error\"", handler.msg()); |
| 720 } | 724 } |
| 721 | 725 |
| 722 #endif // !defined(TARGET_ARCH_ARM64) | 726 #endif // !defined(TARGET_ARCH_ARM64) |
| 723 | 727 |
| 724 #endif // !PRODUCT | 728 #endif // !PRODUCT |
| 725 | 729 |
| 726 } // namespace dart | 730 } // namespace dart |
| OLD | NEW |