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

Side by Side Diff: ipc/ipc_sync_channel_unittest.cc

Issue 9968111: Make IPC channels track their peer process ID (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 8 months 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 | Annotate | Revision Log
« no previous file with comments | « ipc/ipc_channel_win.cc ('k') | no next file » | 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 Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // Unit test for SyncChannel. 5 // Unit test for SyncChannel.
6 6
7 #include "ipc/ipc_sync_channel.h" 7 #include "ipc/ipc_sync_channel.h"
8 8
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/basictypes.h" 12 #include "base/basictypes.h"
13 #include "base/bind.h" 13 #include "base/bind.h"
14 #include "base/logging.h" 14 #include "base/logging.h"
15 #include "base/memory/scoped_ptr.h" 15 #include "base/memory/scoped_ptr.h"
16 #include "base/message_loop.h" 16 #include "base/message_loop.h"
17 #include "base/process_util.h"
17 #include "base/stl_util.h" 18 #include "base/stl_util.h"
18 #include "base/string_util.h" 19 #include "base/string_util.h"
19 #include "base/third_party/dynamic_annotations/dynamic_annotations.h" 20 #include "base/third_party/dynamic_annotations/dynamic_annotations.h"
20 #include "base/threading/platform_thread.h" 21 #include "base/threading/platform_thread.h"
21 #include "base/threading/thread.h" 22 #include "base/threading/thread.h"
22 #include "base/synchronization/waitable_event.h" 23 #include "base/synchronization/waitable_event.h"
23 #include "ipc/ipc_message.h" 24 #include "ipc/ipc_message.h"
24 #include "ipc/ipc_sync_message_filter.h" 25 #include "ipc/ipc_sync_message_filter.h"
25 #include "ipc/ipc_sync_message_unittest.h" 26 #include "ipc/ipc_sync_message_unittest.h"
26 #include "testing/gtest/include/gtest/gtest.h" 27 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 1734 matching lines...) Expand 10 before | Expand all | Expand 10 after
1761 const std::string& reply_text) 1762 const std::string& reply_text)
1762 : Worker(channel_name, Channel::MODE_SERVER), 1763 : Worker(channel_name, Channel::MODE_SERVER),
1763 reply_text_(reply_text) { 1764 reply_text_(reply_text) {
1764 Worker::OverrideThread(listener_thread); 1765 Worker::OverrideThread(listener_thread);
1765 } 1766 }
1766 1767
1767 virtual void OnNestedTestMsg(Message* reply_msg) { 1768 virtual void OnNestedTestMsg(Message* reply_msg) {
1768 VLOG(1) << __FUNCTION__ << " Sending reply: " << reply_text_; 1769 VLOG(1) << __FUNCTION__ << " Sending reply: " << reply_text_;
1769 SyncChannelNestedTestMsg_String::WriteReplyParams(reply_msg, reply_text_); 1770 SyncChannelNestedTestMsg_String::WriteReplyParams(reply_msg, reply_text_);
1770 Send(reply_msg); 1771 Send(reply_msg);
1772 ASSERT_EQ(channel()->peer_pid(), base::GetCurrentProcId());
1771 Done(); 1773 Done();
1772 } 1774 }
1773 1775
1774 private: 1776 private:
1775 std::string reply_text_; 1777 std::string reply_text_;
1776 }; 1778 };
1777 1779
1778 class VerifiedClient : public Worker { 1780 class VerifiedClient : public Worker {
1779 public: 1781 public:
1780 VerifiedClient(base::Thread* listener_thread, 1782 VerifiedClient(base::Thread* listener_thread,
1781 const std::string& channel_name, 1783 const std::string& channel_name,
1782 const std::string& expected_text) 1784 const std::string& expected_text)
1783 : Worker(channel_name, Channel::MODE_CLIENT), 1785 : Worker(channel_name, Channel::MODE_CLIENT),
1784 expected_text_(expected_text) { 1786 expected_text_(expected_text) {
1785 Worker::OverrideThread(listener_thread); 1787 Worker::OverrideThread(listener_thread);
1786 } 1788 }
1787 1789
1788 virtual void Run() { 1790 virtual void Run() {
1789 std::string response; 1791 std::string response;
1790 SyncMessage* msg = new SyncChannelNestedTestMsg_String(&response); 1792 SyncMessage* msg = new SyncChannelNestedTestMsg_String(&response);
1791 bool result = Send(msg); 1793 bool result = Send(msg);
1792 DCHECK(result); 1794 DCHECK(result);
1793 DCHECK_EQ(response, expected_text_); 1795 DCHECK_EQ(response, expected_text_);
1794 1796
1795 VLOG(1) << __FUNCTION__ << " Received reply: " << response; 1797 VLOG(1) << __FUNCTION__ << " Received reply: " << response;
1798 ASSERT_EQ(channel()->peer_pid(), base::GetCurrentProcId());
1796 Done(); 1799 Done();
1797 } 1800 }
1798 1801
1799 private: 1802 private:
1800 bool pump_during_send_; 1803 bool pump_during_send_;
1801 std::string expected_text_; 1804 std::string expected_text_;
1802 }; 1805 };
1803 1806
1804 void Verified() { 1807 void Verified() {
1805 std::vector<Worker*> workers; 1808 std::vector<Worker*> workers;
(...skipping 26 matching lines...) Expand all
1832 1835
1833 } // namespace 1836 } // namespace
1834 1837
1835 // Windows needs to send an out-of-band secret to verify the client end of the 1838 // Windows needs to send an out-of-band secret to verify the client end of the
1836 // channel. Test that we still connect correctly in that case. 1839 // channel. Test that we still connect correctly in that case.
1837 TEST_F(IPCSyncChannelTest, Verified) { 1840 TEST_F(IPCSyncChannelTest, Verified) {
1838 Verified(); 1841 Verified();
1839 } 1842 }
1840 1843
1841 } // namespace IPC 1844 } // namespace IPC
OLDNEW
« no previous file with comments | « ipc/ipc_channel_win.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698