OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 to make sure that the serialization of synchronous IPC messages | 5 // Unit test to make sure that the serialization of synchronous IPC messages |
6 // works. This ensures that the macros and templates were defined correctly. | 6 // works. This ensures that the macros and templates were defined correctly. |
7 // Doesn't test the IPC channel mechanism. | 7 // Doesn't test the IPC channel mechanism. |
8 | 8 |
9 #include <string.h> | 9 #include <string.h> |
10 | 10 |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
101 *out4 = false; | 101 *out4 = false; |
102 } | 102 } |
103 | 103 |
104 bool Send(IPC::Message* message) { | 104 bool Send(IPC::Message* message) { |
105 // gets the reply message, stash in global | 105 // gets the reply message, stash in global |
106 DCHECK(g_reply == NULL); | 106 DCHECK(g_reply == NULL); |
107 g_reply = message; | 107 g_reply = message; |
108 return true; | 108 return true; |
109 } | 109 } |
110 | 110 |
111 void OnMessageReceived(const IPC::Message& msg) { | 111 bool OnMessageReceived(const IPC::Message& msg) { |
112 IPC_BEGIN_MESSAGE_MAP(TestMessageReceiver, msg) | 112 IPC_BEGIN_MESSAGE_MAP(TestMessageReceiver, msg) |
113 IPC_MESSAGE_HANDLER(Msg_C_0_1, On_0_1) | 113 IPC_MESSAGE_HANDLER(Msg_C_0_1, On_0_1) |
114 IPC_MESSAGE_HANDLER(Msg_C_0_2, On_0_2) | 114 IPC_MESSAGE_HANDLER(Msg_C_0_2, On_0_2) |
115 IPC_MESSAGE_HANDLER(Msg_C_0_3, On_0_3) | 115 IPC_MESSAGE_HANDLER(Msg_C_0_3, On_0_3) |
116 IPC_MESSAGE_HANDLER(Msg_C_1_1, On_1_1) | 116 IPC_MESSAGE_HANDLER(Msg_C_1_1, On_1_1) |
117 IPC_MESSAGE_HANDLER(Msg_C_1_2, On_1_2) | 117 IPC_MESSAGE_HANDLER(Msg_C_1_2, On_1_2) |
118 IPC_MESSAGE_HANDLER(Msg_C_1_3, On_1_3) | 118 IPC_MESSAGE_HANDLER(Msg_C_1_3, On_1_3) |
119 IPC_MESSAGE_HANDLER(Msg_C_2_1, On_2_1) | 119 IPC_MESSAGE_HANDLER(Msg_C_2_1, On_2_1) |
120 IPC_MESSAGE_HANDLER(Msg_C_2_2, On_2_2) | 120 IPC_MESSAGE_HANDLER(Msg_C_2_2, On_2_2) |
121 IPC_MESSAGE_HANDLER(Msg_C_2_3, On_2_3) | 121 IPC_MESSAGE_HANDLER(Msg_C_2_3, On_2_3) |
122 IPC_MESSAGE_HANDLER(Msg_C_3_1, On_3_1) | 122 IPC_MESSAGE_HANDLER(Msg_C_3_1, On_3_1) |
123 IPC_MESSAGE_HANDLER(Msg_C_3_2, On_3_2) | 123 IPC_MESSAGE_HANDLER(Msg_C_3_2, On_3_2) |
124 IPC_MESSAGE_HANDLER(Msg_C_3_3, On_3_3) | 124 IPC_MESSAGE_HANDLER(Msg_C_3_3, On_3_3) |
125 IPC_MESSAGE_HANDLER(Msg_C_3_4, On_3_4) | 125 IPC_MESSAGE_HANDLER(Msg_C_3_4, On_3_4) |
126 IPC_MESSAGE_HANDLER(Msg_R_0_1, On_0_1) | 126 IPC_MESSAGE_HANDLER(Msg_R_0_1, On_0_1) |
127 IPC_MESSAGE_HANDLER(Msg_R_0_2, On_0_2) | 127 IPC_MESSAGE_HANDLER(Msg_R_0_2, On_0_2) |
128 IPC_MESSAGE_HANDLER(Msg_R_0_3, On_0_3) | 128 IPC_MESSAGE_HANDLER(Msg_R_0_3, On_0_3) |
129 IPC_MESSAGE_HANDLER(Msg_R_1_1, On_1_1) | 129 IPC_MESSAGE_HANDLER(Msg_R_1_1, On_1_1) |
130 IPC_MESSAGE_HANDLER(Msg_R_1_2, On_1_2) | 130 IPC_MESSAGE_HANDLER(Msg_R_1_2, On_1_2) |
131 IPC_MESSAGE_HANDLER(Msg_R_1_3, On_1_3) | 131 IPC_MESSAGE_HANDLER(Msg_R_1_3, On_1_3) |
132 IPC_MESSAGE_HANDLER(Msg_R_2_1, On_2_1) | 132 IPC_MESSAGE_HANDLER(Msg_R_2_1, On_2_1) |
133 IPC_MESSAGE_HANDLER(Msg_R_2_2, On_2_2) | 133 IPC_MESSAGE_HANDLER(Msg_R_2_2, On_2_2) |
134 IPC_MESSAGE_HANDLER(Msg_R_2_3, On_2_3) | 134 IPC_MESSAGE_HANDLER(Msg_R_2_3, On_2_3) |
135 IPC_MESSAGE_HANDLER(Msg_R_3_1, On_3_1) | 135 IPC_MESSAGE_HANDLER(Msg_R_3_1, On_3_1) |
136 IPC_MESSAGE_HANDLER(Msg_R_3_2, On_3_2) | 136 IPC_MESSAGE_HANDLER(Msg_R_3_2, On_3_2) |
137 IPC_MESSAGE_HANDLER(Msg_R_3_3, On_3_3) | 137 IPC_MESSAGE_HANDLER(Msg_R_3_3, On_3_3) |
138 IPC_MESSAGE_HANDLER(Msg_R_3_4, On_3_4) | 138 IPC_MESSAGE_HANDLER(Msg_R_3_4, On_3_4) |
139 IPC_END_MESSAGE_MAP() | 139 IPC_END_MESSAGE_MAP() |
| 140 return true; |
140 } | 141 } |
141 | 142 |
142 }; | 143 }; |
143 | 144 |
144 void Send(IPC::SyncMessage* msg) { | 145 void Send(IPC::SyncMessage* msg) { |
145 static TestMessageReceiver receiver; | 146 static TestMessageReceiver receiver; |
146 | 147 |
147 IPC::MessageReplyDeserializer* reply_serializer = msg->GetReplyDeserializer(); | 148 IPC::MessageReplyDeserializer* reply_serializer = msg->GetReplyDeserializer(); |
148 DCHECK(reply_serializer != NULL); | 149 DCHECK(reply_serializer != NULL); |
149 | 150 |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 DCHECK(bool1); | 256 DCHECK(bool1); |
256 | 257 |
257 bool1 = false; | 258 bool1 = false; |
258 Send(new Msg_R_3_2(0, "3_2", false, 2, &bool1, &int1)); | 259 Send(new Msg_R_3_2(0, "3_2", false, 2, &bool1, &int1)); |
259 DCHECK(bool1 && int1 == 32); | 260 DCHECK(bool1 && int1 == 32); |
260 | 261 |
261 bool1 = true; | 262 bool1 = true; |
262 Send(new Msg_R_3_3(0, 3, "3_3", true, &string1, &int1, &bool1)); | 263 Send(new Msg_R_3_3(0, 3, "3_3", true, &string1, &int1, &bool1)); |
263 DCHECK(string1 == "3_3" && int1 == 33 && !bool1); | 264 DCHECK(string1 == "3_3" && int1 == 33 && !bool1); |
264 } | 265 } |
OLD | NEW |