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

Side by Side Diff: ipc/ipc_fuzzing_tests.cc

Issue 2863034: Up the warnings in ipc... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 5 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
OLDNEW
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 #include <stdio.h> 5 #include <stdio.h>
6 #include <iostream> 6 #include <iostream>
7 #include <string> 7 #include <string>
8 #include <sstream> 8 #include <sstream>
9 9
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 RoundtripAckReply(FUZZER_ROUTING_ID, MsgClassIS::ID, value); 179 RoundtripAckReply(FUZZER_ROUTING_ID, MsgClassIS::ID, value);
180 Cleanup(); 180 Cleanup();
181 } 181 }
182 182
183 void OnMsgClassSIMessage(const std::wstring& text, int value) { 183 void OnMsgClassSIMessage(const std::wstring& text, int value) {
184 UseData(MsgClassSI::ID, value, text); 184 UseData(MsgClassSI::ID, value, text);
185 RoundtripAckReply(FUZZER_ROUTING_ID, MsgClassSI::ID, value); 185 RoundtripAckReply(FUZZER_ROUTING_ID, MsgClassSI::ID, value);
186 Cleanup(); 186 Cleanup();
187 } 187 }
188 188
189 bool RoundtripAckReply(int routing, int type_id, int reply) { 189 bool RoundtripAckReply(int routing, uint32 type_id, int reply) {
190 IPC::Message* message = new IPC::Message(routing, type_id, 190 IPC::Message* message = new IPC::Message(routing, type_id,
191 IPC::Message::PRIORITY_NORMAL); 191 IPC::Message::PRIORITY_NORMAL);
192 message->WriteInt(reply + 1); 192 message->WriteInt(reply + 1);
193 message->WriteInt(reply); 193 message->WriteInt(reply);
194 return other_->Send(message); 194 return other_->Send(message);
195 } 195 }
196 196
197 void Cleanup() { 197 void Cleanup() {
198 --message_count_; 198 --message_count_;
199 --pending_messages_; 199 --pending_messages_;
200 if (0 == message_count_) 200 if (0 == message_count_)
201 MessageLoop::current()->Quit(); 201 MessageLoop::current()->Quit();
202 } 202 }
203 203
204 void ReplyMsgNotHandled(int type_id) { 204 void ReplyMsgNotHandled(uint32 type_id) {
205 RoundtripAckReply(FUZZER_ROUTING_ID, CLIENT_UNHANDLED_IPC, type_id); 205 RoundtripAckReply(FUZZER_ROUTING_ID, CLIENT_UNHANDLED_IPC, type_id);
206 Cleanup(); 206 Cleanup();
207 } 207 }
208 208
209 void UseData(int caller, int value, const std::wstring& text) { 209 void UseData(int caller, int value, const std::wstring& text) {
210 std::wostringstream wos; 210 std::wostringstream wos;
211 wos << L"IPC fuzzer:" << caller << " [" << value << L" " << text << L"]\n"; 211 wos << L"IPC fuzzer:" << caller << " [" << value << L" " << text << L"]\n";
212 std::wstring output = wos.str(); 212 std::wstring output = wos.str();
213 LOG(WARNING) << output.c_str(); 213 LOG(WARNING) << output.c_str();
214 }; 214 };
215 215
216 int message_count_; 216 int message_count_;
217 int pending_messages_; 217 int pending_messages_;
218 }; 218 };
219 219
220 class FuzzerClientListener : public SimpleListener { 220 class FuzzerClientListener : public SimpleListener {
221 public: 221 public:
222 FuzzerClientListener() : last_msg_(NULL) { 222 FuzzerClientListener() : last_msg_(NULL) {
223 } 223 }
224 224
225 virtual void OnMessageReceived(const IPC::Message& msg) { 225 virtual void OnMessageReceived(const IPC::Message& msg) {
226 last_msg_ = new IPC::Message(msg); 226 last_msg_ = new IPC::Message(msg);
227 MessageLoop::current()->Quit(); 227 MessageLoop::current()->Quit();
228 } 228 }
229 229
230 bool ExpectMessage(int value, int type_id) { 230 bool ExpectMessage(int value, uint32 type_id) {
231 if (!MsgHandlerInternal(type_id)) 231 if (!MsgHandlerInternal(type_id))
232 return false; 232 return false;
233 int msg_value1 = 0; 233 int msg_value1 = 0;
234 int msg_value2 = 0; 234 int msg_value2 = 0;
235 void* iter = NULL; 235 void* iter = NULL;
236 if (!last_msg_->ReadInt(&iter, &msg_value1)) 236 if (!last_msg_->ReadInt(&iter, &msg_value1))
237 return false; 237 return false;
238 if (!last_msg_->ReadInt(&iter, &msg_value2)) 238 if (!last_msg_->ReadInt(&iter, &msg_value2))
239 return false; 239 return false;
240 if ((msg_value2 + 1) != msg_value1) 240 if ((msg_value2 + 1) != msg_value1)
241 return false; 241 return false;
242 if (msg_value2 != value) 242 if (msg_value2 != value)
243 return false; 243 return false;
244 244
245 delete last_msg_; 245 delete last_msg_;
246 last_msg_ = NULL; 246 last_msg_ = NULL;
247 return true; 247 return true;
248 } 248 }
249 249
250 bool ExpectMsgNotHandled(int type_id) { 250 bool ExpectMsgNotHandled(uint32 type_id) {
251 return ExpectMessage(type_id, CLIENT_UNHANDLED_IPC); 251 return ExpectMessage(type_id, CLIENT_UNHANDLED_IPC);
252 } 252 }
253 253
254 private: 254 private:
255 bool MsgHandlerInternal(int type_id) { 255 bool MsgHandlerInternal(uint32 type_id) {
256 MessageLoop::current()->Run(); 256 MessageLoop::current()->Run();
257 if (NULL == last_msg_) 257 if (NULL == last_msg_)
258 return false; 258 return false;
259 if (FUZZER_ROUTING_ID != last_msg_->routing_id()) 259 if (FUZZER_ROUTING_ID != last_msg_->routing_id())
260 return false; 260 return false;
261 return (type_id == last_msg_->type()); 261 return (type_id == last_msg_->type());
262 }; 262 };
263 263
264 IPC::Message* last_msg_; 264 IPC::Message* last_msg_;
265 }; 265 };
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 msg = new IPC::Message(MSG_ROUTING_CONTROL, MsgClassIS::ID, 421 msg = new IPC::Message(MSG_ROUTING_CONTROL, MsgClassIS::ID,
422 IPC::Message::PRIORITY_NORMAL); 422 IPC::Message::PRIORITY_NORMAL);
423 msg->WriteInt(0x64); 423 msg->WriteInt(0x64);
424 msg->WriteInt(0x32); 424 msg->WriteInt(0x32);
425 EXPECT_FALSE(server.OnMessageReceived(*msg)); 425 EXPECT_FALSE(server.OnMessageReceived(*msg));
426 delete msg; 426 delete msg;
427 427
428 EXPECT_EQ(0, server.unhandled_msgs()); 428 EXPECT_EQ(0, server.unhandled_msgs());
429 #endif 429 #endif
430 } 430 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698