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

Side by Side Diff: remoting/protocol/connection_tester.cc

Issue 14314026: remoting: Use base::MessageLoop. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 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) 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 #include "remoting/protocol/connection_tester.h" 5 #include "remoting/protocol/connection_tester.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "net/base/io_buffer.h" 9 #include "net/base/io_buffer.h"
10 #include "net/base/net_errors.h" 10 #include "net/base/net_errors.h"
11 #include "net/socket/stream_socket.h" 11 #include "net/socket/stream_socket.h"
12 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
13 13
14 namespace remoting { 14 namespace remoting {
15 namespace protocol { 15 namespace protocol {
16 16
17 StreamConnectionTester::StreamConnectionTester(net::StreamSocket* client_socket, 17 StreamConnectionTester::StreamConnectionTester(net::StreamSocket* client_socket,
18 net::StreamSocket* host_socket, 18 net::StreamSocket* host_socket,
19 int message_size, 19 int message_size,
20 int message_count) 20 int message_count)
21 : message_loop_(MessageLoop::current()), 21 : message_loop_(base::MessageLoop::current()),
22 host_socket_(host_socket), 22 host_socket_(host_socket),
23 client_socket_(client_socket), 23 client_socket_(client_socket),
24 message_size_(message_size), 24 message_size_(message_size),
25 test_data_size_(message_size * message_count), 25 test_data_size_(message_size * message_count),
26 done_(false), 26 done_(false),
27 write_errors_(0), 27 write_errors_(0),
28 read_errors_(0) { 28 read_errors_(0) {}
alexeypa (please no reviews) 2013/04/29 17:17:41 nit: the closing bracket should got to a separate
xhwang 2013/04/30 00:02:36 Done.
29 }
30 29
31 StreamConnectionTester::~StreamConnectionTester() { 30 StreamConnectionTester::~StreamConnectionTester() {
32 } 31 }
33 32
34 void StreamConnectionTester::Start() { 33 void StreamConnectionTester::Start() {
35 InitBuffers(); 34 InitBuffers();
36 DoRead(); 35 DoRead();
37 DoWrite(); 36 DoWrite();
38 } 37 }
39 38
40 void StreamConnectionTester::CheckResults() { 39 void StreamConnectionTester::CheckResults() {
41 EXPECT_EQ(0, write_errors_); 40 EXPECT_EQ(0, write_errors_);
42 EXPECT_EQ(0, read_errors_); 41 EXPECT_EQ(0, read_errors_);
43 42
44 ASSERT_EQ(test_data_size_, input_buffer_->offset()); 43 ASSERT_EQ(test_data_size_, input_buffer_->offset());
45 44
46 output_buffer_->SetOffset(0); 45 output_buffer_->SetOffset(0);
47 ASSERT_EQ(test_data_size_, output_buffer_->size()); 46 ASSERT_EQ(test_data_size_, output_buffer_->size());
48 47
49 EXPECT_EQ(0, memcmp(output_buffer_->data(), 48 EXPECT_EQ(0, memcmp(output_buffer_->data(),
50 input_buffer_->StartOfBuffer(), test_data_size_)); 49 input_buffer_->StartOfBuffer(), test_data_size_));
51 } 50 }
52 51
53 void StreamConnectionTester::Done() { 52 void StreamConnectionTester::Done() {
54 done_ = true; 53 done_ = true;
55 message_loop_->PostTask(FROM_HERE, MessageLoop::QuitClosure()); 54 message_loop_->PostTask(FROM_HERE, base::MessageLoop::QuitClosure());
56 } 55 }
57 56
58 void StreamConnectionTester::InitBuffers() { 57 void StreamConnectionTester::InitBuffers() {
59 output_buffer_ = new net::DrainableIOBuffer( 58 output_buffer_ = new net::DrainableIOBuffer(
60 new net::IOBuffer(test_data_size_), test_data_size_); 59 new net::IOBuffer(test_data_size_), test_data_size_);
61 for (int i = 0; i < test_data_size_; ++i) { 60 for (int i = 0; i < test_data_size_; ++i) {
62 output_buffer_->data()[i] = static_cast<char>(i); 61 output_buffer_->data()[i] = static_cast<char>(i);
63 } 62 }
64 63
65 input_buffer_ = new net::GrowableIOBuffer(); 64 input_buffer_ = new net::GrowableIOBuffer();
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 if (input_buffer_->offset() == test_data_size_) 122 if (input_buffer_->offset() == test_data_size_)
124 Done(); 123 Done();
125 } 124 }
126 } 125 }
127 126
128 DatagramConnectionTester::DatagramConnectionTester(net::Socket* client_socket, 127 DatagramConnectionTester::DatagramConnectionTester(net::Socket* client_socket,
129 net::Socket* host_socket, 128 net::Socket* host_socket,
130 int message_size, 129 int message_size,
131 int message_count, 130 int message_count,
132 int delay_ms) 131 int delay_ms)
133 : message_loop_(MessageLoop::current()), 132 : message_loop_(base::MessageLoop::current()),
134 host_socket_(host_socket), 133 host_socket_(host_socket),
135 client_socket_(client_socket), 134 client_socket_(client_socket),
136 message_size_(message_size), 135 message_size_(message_size),
137 message_count_(message_count), 136 message_count_(message_count),
138 delay_ms_(delay_ms), 137 delay_ms_(delay_ms),
139 done_(false), 138 done_(false),
140 write_errors_(0), 139 write_errors_(0),
141 read_errors_(0), 140 read_errors_(0),
142 packets_sent_(0), 141 packets_sent_(0),
143 packets_received_(0), 142 packets_received_(0),
(...skipping 16 matching lines...) Expand all
160 EXPECT_EQ(0, bad_packets_received_); 159 EXPECT_EQ(0, bad_packets_received_);
161 160
162 // Verify that we've received at least one packet. 161 // Verify that we've received at least one packet.
163 EXPECT_GT(packets_received_, 0); 162 EXPECT_GT(packets_received_, 0);
164 LOG(INFO) << "Received " << packets_received_ << " packets out of " 163 LOG(INFO) << "Received " << packets_received_ << " packets out of "
165 << message_count_; 164 << message_count_;
166 } 165 }
167 166
168 void DatagramConnectionTester::Done() { 167 void DatagramConnectionTester::Done() {
169 done_ = true; 168 done_ = true;
170 message_loop_->PostTask(FROM_HERE, MessageLoop::QuitClosure()); 169 message_loop_->PostTask(FROM_HERE, base::MessageLoop::QuitClosure());
171 } 170 }
172 171
173 void DatagramConnectionTester::DoWrite() { 172 void DatagramConnectionTester::DoWrite() {
174 if (packets_sent_ >= message_count_) { 173 if (packets_sent_ >= message_count_) {
175 Done(); 174 Done();
176 return; 175 return;
177 } 176 }
178 177
179 scoped_refptr<net::IOBuffer> packet(new net::IOBuffer(message_size_)); 178 scoped_refptr<net::IOBuffer> packet(new net::IOBuffer(message_size_));
180 for (int i = 0; i < message_size_; ++i) { 179 for (int i = 0; i < message_size_; ++i) {
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 if (memcmp(read_buffer_->data(), sent_packets_[packet_id]->data(), 247 if (memcmp(read_buffer_->data(), sent_packets_[packet_id]->data(),
249 message_size_) != 0) 248 message_size_) != 0)
250 bad_packets_received_++; 249 bad_packets_received_++;
251 } 250 }
252 } 251 }
253 } 252 }
254 } 253 }
255 254
256 } // namespace protocol 255 } // namespace protocol
257 } // namespace remoting 256 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698