| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <inttypes.h> | 5 #include <inttypes.h> |
| 6 #include <stdio.h> | 6 #include <stdio.h> |
| 7 #include <stdlib.h> | 7 #include <stdlib.h> |
| 8 #include <string.h> | 8 #include <string.h> |
| 9 | 9 |
| 10 #include <map> | 10 #include <map> |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 165 base::AutoLock lock(lock_); | 165 base::AutoLock lock(lock_); |
| 166 drop_messages_ = value; | 166 drop_messages_ = value; |
| 167 } | 167 } |
| 168 | 168 |
| 169 void set_save_messages(bool value) { | 169 void set_save_messages(bool value) { |
| 170 base::AutoLock lock(lock_); | 170 base::AutoLock lock(lock_); |
| 171 save_messages_ = value; | 171 save_messages_ = value; |
| 172 } | 172 } |
| 173 | 173 |
| 174 bool ReadMessage(const PortRef& port, ScopedMessage* message) { | 174 bool ReadMessage(const PortRef& port, ScopedMessage* message) { |
| 175 return node_.GetMessage(port, message) == OK && *message; | 175 return node_.GetMessage(port, message, nullptr) == OK && *message; |
| 176 } | 176 } |
| 177 | 177 |
| 178 bool GetSavedMessage(ScopedMessage* message) { | 178 bool GetSavedMessage(ScopedMessage* message) { |
| 179 base::AutoLock lock(lock_); | 179 base::AutoLock lock(lock_); |
| 180 if (saved_messages_.empty()) { | 180 if (saved_messages_.empty()) { |
| 181 message->reset(); | 181 message->reset(); |
| 182 return false; | 182 return false; |
| 183 } | 183 } |
| 184 std::swap(*message, saved_messages_.front()); | 184 std::swap(*message, saved_messages_.front()); |
| 185 saved_messages_.pop(); | 185 saved_messages_.pop(); |
| (...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 574 WaitForIdle(); | 574 WaitForIdle(); |
| 575 | 575 |
| 576 node1.set_drop_messages(true); | 576 node1.set_drop_messages(true); |
| 577 | 577 |
| 578 RemoveNode(&node1); | 578 RemoveNode(&node1); |
| 579 | 579 |
| 580 WaitForIdle(); | 580 WaitForIdle(); |
| 581 | 581 |
| 582 // a0 should have eventually detected peer closure after node loss. | 582 // a0 should have eventually detected peer closure after node loss. |
| 583 ScopedMessage message; | 583 ScopedMessage message; |
| 584 EXPECT_EQ(ERROR_PORT_PEER_CLOSED, node0.node().GetMessage(a0, &message)); | 584 EXPECT_EQ(ERROR_PORT_PEER_CLOSED, |
| 585 node0.node().GetMessage(a0, &message, nullptr)); |
| 585 EXPECT_FALSE(message); | 586 EXPECT_FALSE(message); |
| 586 | 587 |
| 587 EXPECT_EQ(OK, node0.node().ClosePort(a0)); | 588 EXPECT_EQ(OK, node0.node().ClosePort(a0)); |
| 588 | 589 |
| 589 EXPECT_EQ(OK, node0.node().ClosePort(x0)); | 590 EXPECT_EQ(OK, node0.node().ClosePort(x0)); |
| 590 | 591 |
| 591 EXPECT_EQ(OK, node1.node().GetMessage(x1, &message)); | 592 EXPECT_EQ(OK, node1.node().GetMessage(x1, &message, nullptr)); |
| 592 EXPECT_TRUE(message); | 593 EXPECT_TRUE(message); |
| 593 node1.ClosePortsInMessage(message.get()); | 594 node1.ClosePortsInMessage(message.get()); |
| 594 | 595 |
| 595 EXPECT_EQ(OK, node1.node().ClosePort(x1)); | 596 EXPECT_EQ(OK, node1.node().ClosePort(x1)); |
| 596 | 597 |
| 597 WaitForIdle(); | 598 WaitForIdle(); |
| 598 | 599 |
| 599 EXPECT_TRUE(node0.node().CanShutdownCleanly()); | 600 EXPECT_TRUE(node0.node().CanShutdownCleanly()); |
| 600 EXPECT_TRUE(node1.node().CanShutdownCleanly()); | 601 EXPECT_TRUE(node1.node().CanShutdownCleanly()); |
| 601 } | 602 } |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 718 } | 719 } |
| 719 | 720 |
| 720 TEST_F(PortsTest, GetMessage1) { | 721 TEST_F(PortsTest, GetMessage1) { |
| 721 TestNode node(0); | 722 TestNode node(0); |
| 722 AddNode(&node); | 723 AddNode(&node); |
| 723 | 724 |
| 724 PortRef a0, a1; | 725 PortRef a0, a1; |
| 725 EXPECT_EQ(OK, node.node().CreatePortPair(&a0, &a1)); | 726 EXPECT_EQ(OK, node.node().CreatePortPair(&a0, &a1)); |
| 726 | 727 |
| 727 ScopedMessage message; | 728 ScopedMessage message; |
| 728 EXPECT_EQ(OK, node.node().GetMessage(a0, &message)); | 729 EXPECT_EQ(OK, node.node().GetMessage(a0, &message, nullptr)); |
| 729 EXPECT_FALSE(message); | 730 EXPECT_FALSE(message); |
| 730 | 731 |
| 731 EXPECT_EQ(OK, node.node().ClosePort(a1)); | 732 EXPECT_EQ(OK, node.node().ClosePort(a1)); |
| 732 | 733 |
| 733 WaitForIdle(); | 734 WaitForIdle(); |
| 734 | 735 |
| 735 EXPECT_EQ(ERROR_PORT_PEER_CLOSED, node.node().GetMessage(a0, &message)); | 736 EXPECT_EQ(ERROR_PORT_PEER_CLOSED, |
| 737 node.node().GetMessage(a0, &message, nullptr)); |
| 736 EXPECT_FALSE(message); | 738 EXPECT_FALSE(message); |
| 737 | 739 |
| 738 EXPECT_EQ(OK, node.node().ClosePort(a0)); | 740 EXPECT_EQ(OK, node.node().ClosePort(a0)); |
| 739 | 741 |
| 740 WaitForIdle(); | 742 WaitForIdle(); |
| 741 | 743 |
| 742 EXPECT_TRUE(node.node().CanShutdownCleanly()); | 744 EXPECT_TRUE(node.node().CanShutdownCleanly()); |
| 743 } | 745 } |
| 744 | 746 |
| 745 TEST_F(PortsTest, GetMessage2) { | 747 TEST_F(PortsTest, GetMessage2) { |
| 746 TestNode node(0); | 748 TestNode node(0); |
| 747 AddNode(&node); | 749 AddNode(&node); |
| 748 | 750 |
| 749 PortRef a0, a1; | 751 PortRef a0, a1; |
| 750 EXPECT_EQ(OK, node.node().CreatePortPair(&a0, &a1)); | 752 EXPECT_EQ(OK, node.node().CreatePortPair(&a0, &a1)); |
| 751 | 753 |
| 752 EXPECT_EQ(OK, node.SendStringMessage(a1, "1")); | 754 EXPECT_EQ(OK, node.SendStringMessage(a1, "1")); |
| 753 | 755 |
| 754 ScopedMessage message; | 756 ScopedMessage message; |
| 755 EXPECT_EQ(OK, node.node().GetMessage(a0, &message)); | 757 EXPECT_EQ(OK, node.node().GetMessage(a0, &message, nullptr)); |
| 756 | 758 |
| 757 ASSERT_TRUE(message); | 759 ASSERT_TRUE(message); |
| 758 EXPECT_TRUE(MessageEquals(message, "1")); | 760 EXPECT_TRUE(MessageEquals(message, "1")); |
| 759 | 761 |
| 760 EXPECT_EQ(OK, node.node().ClosePort(a0)); | 762 EXPECT_EQ(OK, node.node().ClosePort(a0)); |
| 761 EXPECT_EQ(OK, node.node().ClosePort(a1)); | 763 EXPECT_EQ(OK, node.node().ClosePort(a1)); |
| 762 | 764 |
| 763 EXPECT_TRUE(node.node().CanShutdownCleanly()); | 765 EXPECT_TRUE(node.node().CanShutdownCleanly()); |
| 764 } | 766 } |
| 765 | 767 |
| 766 TEST_F(PortsTest, GetMessage3) { | 768 TEST_F(PortsTest, GetMessage3) { |
| 767 TestNode node(0); | 769 TestNode node(0); |
| 768 AddNode(&node); | 770 AddNode(&node); |
| 769 | 771 |
| 770 PortRef a0, a1; | 772 PortRef a0, a1; |
| 771 EXPECT_EQ(OK, node.node().CreatePortPair(&a0, &a1)); | 773 EXPECT_EQ(OK, node.node().CreatePortPair(&a0, &a1)); |
| 772 | 774 |
| 773 const char* kStrings[] = { | 775 const char* kStrings[] = { |
| 774 "1", | 776 "1", |
| 775 "2", | 777 "2", |
| 776 "3" | 778 "3" |
| 777 }; | 779 }; |
| 778 | 780 |
| 779 for (size_t i = 0; i < sizeof(kStrings)/sizeof(kStrings[0]); ++i) | 781 for (size_t i = 0; i < sizeof(kStrings)/sizeof(kStrings[0]); ++i) |
| 780 EXPECT_EQ(OK, node.SendStringMessage(a1, kStrings[i])); | 782 EXPECT_EQ(OK, node.SendStringMessage(a1, kStrings[i])); |
| 781 | 783 |
| 782 ScopedMessage message; | 784 ScopedMessage message; |
| 783 for (size_t i = 0; i < sizeof(kStrings)/sizeof(kStrings[0]); ++i) { | 785 for (size_t i = 0; i < sizeof(kStrings)/sizeof(kStrings[0]); ++i) { |
| 784 EXPECT_EQ(OK, node.node().GetMessage(a0, &message)); | 786 EXPECT_EQ(OK, node.node().GetMessage(a0, &message, nullptr)); |
| 785 ASSERT_TRUE(message); | 787 ASSERT_TRUE(message); |
| 786 EXPECT_TRUE(MessageEquals(message, kStrings[i])); | 788 EXPECT_TRUE(MessageEquals(message, kStrings[i])); |
| 787 } | 789 } |
| 788 | 790 |
| 789 EXPECT_EQ(OK, node.node().ClosePort(a0)); | 791 EXPECT_EQ(OK, node.node().ClosePort(a0)); |
| 790 EXPECT_EQ(OK, node.node().ClosePort(a1)); | 792 EXPECT_EQ(OK, node.node().ClosePort(a1)); |
| 791 | 793 |
| 792 EXPECT_TRUE(node.node().CanShutdownCleanly()); | 794 EXPECT_TRUE(node.node().CanShutdownCleanly()); |
| 793 } | 795 } |
| 794 | 796 |
| (...skipping 672 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1467 | 1469 |
| 1468 // Expect everything to have gone away. | 1470 // Expect everything to have gone away. |
| 1469 EXPECT_TRUE(node0.node().CanShutdownCleanly()); | 1471 EXPECT_TRUE(node0.node().CanShutdownCleanly()); |
| 1470 EXPECT_TRUE(node1.node().CanShutdownCleanly()); | 1472 EXPECT_TRUE(node1.node().CanShutdownCleanly()); |
| 1471 } | 1473 } |
| 1472 | 1474 |
| 1473 } // namespace test | 1475 } // namespace test |
| 1474 } // namespace ports | 1476 } // namespace ports |
| 1475 } // namespace edk | 1477 } // namespace edk |
| 1476 } // namespace mojo | 1478 } // namespace mojo |
| OLD | NEW |