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

Side by Side Diff: content/renderer/p2p/p2p_transport_impl_unittest.cc

Issue 8824006: Migrate net/socket/socket.h, net/socket/stream_socket.h to base::Bind(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 9 years 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 | « content/renderer/p2p/p2p_transport_impl.cc ('k') | jingle/glue/channel_socket_adapter.h » ('j') | 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "content/renderer/p2p/p2p_transport_impl.h" 5 #include "content/renderer/p2p/p2p_transport_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 44
45 class UdpChannelTester : public base::RefCountedThreadSafe<UdpChannelTester> { 45 class UdpChannelTester : public base::RefCountedThreadSafe<UdpChannelTester> {
46 public: 46 public:
47 UdpChannelTester(MessageLoop* message_loop, 47 UdpChannelTester(MessageLoop* message_loop,
48 net::Socket* write_socket, 48 net::Socket* write_socket,
49 net::Socket* read_socket) 49 net::Socket* read_socket)
50 : message_loop_(message_loop), 50 : message_loop_(message_loop),
51 write_socket_(write_socket), 51 write_socket_(write_socket),
52 read_socket_(read_socket), 52 read_socket_(read_socket),
53 done_(false), 53 done_(false),
54 ALLOW_THIS_IN_INITIALIZER_LIST(
55 write_cb_(this, &UdpChannelTester::OnWritten)),
56 ALLOW_THIS_IN_INITIALIZER_LIST(
57 read_cb_(this, &UdpChannelTester::OnRead)),
58 write_errors_(0), 54 write_errors_(0),
59 read_errors_(0), 55 read_errors_(0),
60 packets_sent_(0), 56 packets_sent_(0),
61 packets_received_(0), 57 packets_received_(0),
62 broken_packets_(0) { 58 broken_packets_(0) {
63 } 59 }
64 60
65 virtual ~UdpChannelTester() { } 61 virtual ~UdpChannelTester() { }
66 62
67 void Start() { 63 void Start() {
(...skipping 29 matching lines...) Expand all
97 Done(); 93 Done();
98 return; 94 return;
99 } 95 }
100 96
101 scoped_refptr<net::IOBuffer> packet(new net::IOBuffer(kMessageSize)); 97 scoped_refptr<net::IOBuffer> packet(new net::IOBuffer(kMessageSize));
102 memset(packet->data(), 123, kMessageSize); 98 memset(packet->data(), 123, kMessageSize);
103 sent_packets_[packets_sent_] = packet; 99 sent_packets_[packets_sent_] = packet;
104 // Put index of this packet in the beginning of the packet body. 100 // Put index of this packet in the beginning of the packet body.
105 memcpy(packet->data(), &packets_sent_, sizeof(packets_sent_)); 101 memcpy(packet->data(), &packets_sent_, sizeof(packets_sent_));
106 102
107 int result = write_socket_->Write(packet, kMessageSize, &write_cb_); 103 int result = write_socket_->Write(packet, kMessageSize,
104 base::Bind(&UdpChannelTester::OnWritten,
105 base::Unretained(this)));
108 HandleWriteResult(result); 106 HandleWriteResult(result);
109 } 107 }
110 108
111 void OnWritten(int result) { 109 void OnWritten(int result) {
112 HandleWriteResult(result); 110 HandleWriteResult(result);
113 } 111 }
114 112
115 void HandleWriteResult(int result) { 113 void HandleWriteResult(int result) {
116 if (result <= 0 && result != net::ERR_IO_PENDING) { 114 if (result <= 0 && result != net::ERR_IO_PENDING) {
117 LOG(ERROR) << "Received error " << result << " when trying to write"; 115 LOG(ERROR) << "Received error " << result << " when trying to write";
118 write_errors_++; 116 write_errors_++;
119 Done(); 117 Done();
120 } else if (result > 0) { 118 } else if (result > 0) {
121 EXPECT_EQ(kMessageSize, result); 119 EXPECT_EQ(kMessageSize, result);
122 packets_sent_++; 120 packets_sent_++;
123 message_loop_->PostDelayedTask( 121 message_loop_->PostDelayedTask(
124 FROM_HERE, base::Bind(&UdpChannelTester::DoWrite, this), 122 FROM_HERE, base::Bind(&UdpChannelTester::DoWrite, this),
125 kUdpWriteDelayMs); 123 kUdpWriteDelayMs);
126 } 124 }
127 } 125 }
128 126
129 void DoRead() { 127 void DoRead() {
130 int result = 1; 128 int result = 1;
131 while (result > 0) { 129 while (result > 0) {
132 int kReadSize = kMessageSize * 2; 130 int kReadSize = kMessageSize * 2;
133 read_buffer_ = new net::IOBuffer(kReadSize); 131 read_buffer_ = new net::IOBuffer(kReadSize);
134 132
135 result = read_socket_->Read(read_buffer_, kReadSize, &read_cb_); 133 result = read_socket_->Read(read_buffer_, kReadSize,
134 base::Bind(&UdpChannelTester::OnRead,
135 base::Unretained(this)));
136 HandleReadResult(result); 136 HandleReadResult(result);
137 }; 137 };
138 } 138 }
139 139
140 void OnRead(int result) { 140 void OnRead(int result) {
141 HandleReadResult(result); 141 HandleReadResult(result);
142 DoRead(); 142 DoRead();
143 } 143 }
144 144
145 void HandleReadResult(int result) { 145 void HandleReadResult(int result) {
(...skipping 26 matching lines...) Expand all
172 172
173 private: 173 private:
174 MessageLoop* message_loop_; 174 MessageLoop* message_loop_;
175 net::Socket* write_socket_; 175 net::Socket* write_socket_;
176 net::Socket* read_socket_; 176 net::Socket* read_socket_;
177 bool done_; 177 bool done_;
178 178
179 scoped_refptr<net::IOBuffer> sent_packets_[kMessages]; 179 scoped_refptr<net::IOBuffer> sent_packets_[kMessages];
180 scoped_refptr<net::IOBuffer> read_buffer_; 180 scoped_refptr<net::IOBuffer> read_buffer_;
181 181
182 net::OldCompletionCallbackImpl<UdpChannelTester> write_cb_;
183 net::OldCompletionCallbackImpl<UdpChannelTester> read_cb_;
184 int write_errors_; 182 int write_errors_;
185 int read_errors_; 183 int read_errors_;
186 int packets_sent_; 184 int packets_sent_;
187 int packets_received_; 185 int packets_received_;
188 int broken_packets_; 186 int broken_packets_;
189 }; 187 };
190 188
191 class TcpChannelTester : public base::RefCountedThreadSafe<TcpChannelTester> { 189 class TcpChannelTester : public base::RefCountedThreadSafe<TcpChannelTester> {
192 public: 190 public:
193 TcpChannelTester(MessageLoop* message_loop, 191 TcpChannelTester(MessageLoop* message_loop,
194 net::Socket* write_socket, 192 net::Socket* write_socket,
195 net::Socket* read_socket) 193 net::Socket* read_socket)
196 : message_loop_(message_loop), 194 : message_loop_(message_loop),
197 write_socket_(write_socket), 195 write_socket_(write_socket),
198 read_socket_(read_socket), 196 read_socket_(read_socket),
199 done_(false), 197 done_(false),
200 ALLOW_THIS_IN_INITIALIZER_LIST(
201 write_cb_(this, &TcpChannelTester::OnWritten)),
202 ALLOW_THIS_IN_INITIALIZER_LIST(
203 read_cb_(this, &TcpChannelTester::OnRead)),
204 write_errors_(0), 198 write_errors_(0),
205 read_errors_(0) { 199 read_errors_(0) {
206 } 200 }
207 201
208 virtual ~TcpChannelTester() { } 202 virtual ~TcpChannelTester() { }
209 203
210 void Init() { 204 void Init() {
211 // Initialize |send_buffer_|. 205 // Initialize |send_buffer_|.
212 send_buffer_ = new net::DrainableIOBuffer(new net::IOBuffer(kTcpDataSize), 206 send_buffer_ = new net::DrainableIOBuffer(new net::IOBuffer(kTcpDataSize),
213 kTcpDataSize); 207 kTcpDataSize);
(...skipping 29 matching lines...) Expand all
243 done_ = true; 237 done_ = true;
244 message_loop_->PostTask(FROM_HERE, new MessageLoop::QuitTask()); 238 message_loop_->PostTask(FROM_HERE, new MessageLoop::QuitTask());
245 } 239 }
246 240
247 void DoWrite() { 241 void DoWrite() {
248 if (send_buffer_->BytesRemaining() == 0) { 242 if (send_buffer_->BytesRemaining() == 0) {
249 return; 243 return;
250 } 244 }
251 245
252 int result = write_socket_->Write( 246 int result = write_socket_->Write(
253 send_buffer_, send_buffer_->BytesRemaining(), &write_cb_); 247 send_buffer_, send_buffer_->BytesRemaining(),
248 base::Bind(&TcpChannelTester::OnWritten, base::Unretained(this)));
254 HandleWriteResult(result); 249 HandleWriteResult(result);
255 } 250 }
256 251
257 void OnWritten(int result) { 252 void OnWritten(int result) {
258 HandleWriteResult(result); 253 HandleWriteResult(result);
259 } 254 }
260 255
261 void HandleWriteResult(int result) { 256 void HandleWriteResult(int result) {
262 if (result <= 0 && result != net::ERR_IO_PENDING) { 257 if (result <= 0 && result != net::ERR_IO_PENDING) {
263 LOG(ERROR) << "Received error " << result << " when trying to write"; 258 LOG(ERROR) << "Received error " << result << " when trying to write";
264 write_errors_++; 259 write_errors_++;
265 Done(); 260 Done();
266 } else if (result > 0) { 261 } else if (result > 0) {
267 send_buffer_->DidConsume(result); 262 send_buffer_->DidConsume(result);
268 message_loop_->PostDelayedTask( 263 message_loop_->PostDelayedTask(
269 FROM_HERE, base::Bind(&TcpChannelTester::DoWrite, this), 264 FROM_HERE, base::Bind(&TcpChannelTester::DoWrite, this),
270 kTcpWriteDelayMs); 265 kTcpWriteDelayMs);
271 } 266 }
272 } 267 }
273 268
274 void DoRead() { 269 void DoRead() {
275 int result = 1; 270 int result = 1;
276 while (result > 0) { 271 while (result > 0) {
277 int kReadSize = kMessageSize * 2; 272 int kReadSize = kMessageSize * 2;
278 read_buffer_ = new net::IOBuffer(kReadSize); 273 read_buffer_ = new net::IOBuffer(kReadSize);
279 274
280 result = read_socket_->Read(read_buffer_, kReadSize, &read_cb_); 275 result = read_socket_->Read(
276 read_buffer_, kReadSize,
277 base::Bind(&TcpChannelTester::OnRead, base::Unretained(this)));
281 HandleReadResult(result); 278 HandleReadResult(result);
282 }; 279 };
283 } 280 }
284 281
285 void OnRead(int result) { 282 void OnRead(int result) {
286 HandleReadResult(result); 283 HandleReadResult(result);
287 DoRead(); 284 DoRead();
288 } 285 }
289 286
290 void HandleReadResult(int result) { 287 void HandleReadResult(int result) {
(...skipping 17 matching lines...) Expand all
308 net::Socket* write_socket_; 305 net::Socket* write_socket_;
309 net::Socket* read_socket_; 306 net::Socket* read_socket_;
310 bool done_; 307 bool done_;
311 308
312 scoped_refptr<net::DrainableIOBuffer> send_buffer_; 309 scoped_refptr<net::DrainableIOBuffer> send_buffer_;
313 scoped_refptr<net::IOBuffer> read_buffer_; 310 scoped_refptr<net::IOBuffer> read_buffer_;
314 311
315 std::vector<char> sent_data_; 312 std::vector<char> sent_data_;
316 std::vector<char> received_data_; 313 std::vector<char> received_data_;
317 314
318 net::OldCompletionCallbackImpl<TcpChannelTester> write_cb_;
319 net::OldCompletionCallbackImpl<TcpChannelTester> read_cb_;
320 int write_errors_; 315 int write_errors_;
321 int read_errors_; 316 int read_errors_;
322 }; 317 };
323 318
324 } // namespace 319 } // namespace
325 320
326 namespace content { 321 namespace content {
327 322
328 class MockP2PEventHandler : public P2PTransport::EventHandler { 323 class MockP2PEventHandler : public P2PTransport::EventHandler {
329 public: 324 public:
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 476
482 message_loop_.PostDelayedTask(FROM_HERE, new MessageLoop::QuitTask(), 477 message_loop_.PostDelayedTask(FROM_HERE, new MessageLoop::QuitTask(),
483 TestTimeouts::action_max_timeout_ms()); 478 TestTimeouts::action_max_timeout_ms());
484 479
485 channel_tester->Init(); 480 channel_tester->Init();
486 message_loop_.Run(); 481 message_loop_.Run();
487 channel_tester->CheckResults(); 482 channel_tester->CheckResults();
488 } 483 }
489 484
490 } // namespace content 485 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/p2p/p2p_transport_impl.cc ('k') | jingle/glue/channel_socket_adapter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698