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

Side by Side Diff: net/tools/quic/quic_dispatcher_test.cc

Issue 990533002: Land Recent QUIC Changes until 03/06/2015. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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
« no previous file with comments | « net/tools/quic/quic_dispatcher.cc ('k') | net/tools/quic/test_tools/quic_test_utils.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) 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 "net/tools/quic/quic_dispatcher.h" 5 #include "net/tools/quic/quic_dispatcher.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/strings/string_piece.h" 9 #include "base/strings/string_piece.h"
10 #include "net/quic/crypto/crypto_handshake.h" 10 #include "net/quic/crypto/crypto_handshake.h"
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 } 132 }
133 133
134 MockConnection* connection2() { 134 MockConnection* connection2() {
135 return reinterpret_cast<MockConnection*>(session2_->connection()); 135 return reinterpret_cast<MockConnection*>(session2_->connection());
136 } 136 }
137 137
138 void ProcessPacket(IPEndPoint client_address, 138 void ProcessPacket(IPEndPoint client_address,
139 QuicConnectionId connection_id, 139 QuicConnectionId connection_id,
140 bool has_version_flag, 140 bool has_version_flag,
141 const string& data) { 141 const string& data) {
142 ProcessPacket(client_address, connection_id, has_version_flag, data,
143 PACKET_8BYTE_CONNECTION_ID, PACKET_6BYTE_SEQUENCE_NUMBER);
144 }
145
146 void ProcessPacket(IPEndPoint client_address,
147 QuicConnectionId connection_id,
148 bool has_version_flag,
149 const string& data,
150 QuicConnectionIdLength connection_id_length,
151 QuicSequenceNumberLength sequence_number_length) {
142 scoped_ptr<QuicEncryptedPacket> packet(ConstructEncryptedPacket( 152 scoped_ptr<QuicEncryptedPacket> packet(ConstructEncryptedPacket(
143 connection_id, has_version_flag, false, 1, data)); 153 connection_id, has_version_flag, false, 1, data, connection_id_length,
154 sequence_number_length));
144 data_ = string(packet->data(), packet->length()); 155 data_ = string(packet->data(), packet->length());
145 dispatcher_.ProcessPacket(server_address_, client_address, *packet); 156 dispatcher_.ProcessPacket(server_address_, client_address, *packet);
146 } 157 }
147 158
148 void ValidatePacket(const QuicEncryptedPacket& packet) { 159 void ValidatePacket(const QuicEncryptedPacket& packet) {
149 EXPECT_EQ(data_.length(), packet.AsStringPiece().length()); 160 EXPECT_EQ(data_.length(), packet.AsStringPiece().length());
150 EXPECT_EQ(data_, packet.AsStringPiece()); 161 EXPECT_EQ(data_, packet.AsStringPiece());
151 } 162 }
152 163
153 void CreateTimeWaitListManager() { 164 void CreateTimeWaitListManager() {
154 time_wait_list_manager_ = new MockTimeWaitListManager( 165 time_wait_list_manager_ = new MockTimeWaitListManager(
155 QuicDispatcherPeer::GetWriter(&dispatcher_), &dispatcher_, &eps_); 166 QuicDispatcherPeer::GetWriter(&dispatcher_), &dispatcher_, &eps_);
156 // dispatcher takes the ownership of time_wait_list_manager. 167 // dispatcher_ takes the ownership of time_wait_list_manager_.
157 QuicDispatcherPeer::SetTimeWaitListManager(&dispatcher_, 168 QuicDispatcherPeer::SetTimeWaitListManager(&dispatcher_,
158 time_wait_list_manager_); 169 time_wait_list_manager_);
159 } 170 }
160 171
161 EpollServer eps_; 172 EpollServer eps_;
162 QuicConfig config_; 173 QuicConfig config_;
163 QuicCryptoServerConfig crypto_config_; 174 QuicCryptoServerConfig crypto_config_;
164 IPEndPoint server_address_; 175 IPEndPoint server_address_;
165 TestDispatcher dispatcher_; 176 TestDispatcher dispatcher_;
166 MockTimeWaitListManager* time_wait_list_manager_; 177 MockTimeWaitListManager* time_wait_list_manager_;
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 TEST_F(QuicDispatcherTest, StrayPacketToTimeWaitListManager) { 263 TEST_F(QuicDispatcherTest, StrayPacketToTimeWaitListManager) {
253 CreateTimeWaitListManager(); 264 CreateTimeWaitListManager();
254 265
255 IPEndPoint client_address(net::test::Loopback4(), 1); 266 IPEndPoint client_address(net::test::Loopback4(), 1);
256 QuicConnectionId connection_id = 1; 267 QuicConnectionId connection_id = 1;
257 // Dispatcher forwards all packets for this connection_id to the time wait 268 // Dispatcher forwards all packets for this connection_id to the time wait
258 // list manager. 269 // list manager.
259 EXPECT_CALL(dispatcher_, CreateQuicSession(_, _, _)).Times(0); 270 EXPECT_CALL(dispatcher_, CreateQuicSession(_, _, _)).Times(0);
260 EXPECT_CALL(*time_wait_list_manager_, 271 EXPECT_CALL(*time_wait_list_manager_,
261 ProcessPacket(_, _, connection_id, _, _)).Times(1); 272 ProcessPacket(_, _, connection_id, _, _)).Times(1);
262 string data = "foo"; 273 ProcessPacket(client_address, connection_id, false, "data");
263 ProcessPacket(client_address, connection_id, false, "foo");
264 } 274 }
265 275
266 TEST_F(QuicDispatcherTest, ProcessPacketWithBogusPort) { 276 TEST_F(QuicDispatcherTest, ProcessPacketWithBogusPort) {
267 CreateTimeWaitListManager(); 277 CreateTimeWaitListManager();
268 278
269 IPEndPoint client_address(net::test::Loopback4(), 0); 279 IPEndPoint client_address(net::test::Loopback4(), 0);
270 IPAddressNumber any4; 280 IPAddressNumber any4;
271 CHECK(net::ParseIPLiteralToNumber("0.0.0.0", &any4)); 281 CHECK(net::ParseIPLiteralToNumber("0.0.0.0", &any4));
272 server_address_ = IPEndPoint(any4, 5); 282 server_address_ = IPEndPoint(any4, 5);
273 283
284 // dispatcher_ should drop this packet.
274 EXPECT_CALL(dispatcher_, CreateQuicSession(1, _, client_address)).Times(0); 285 EXPECT_CALL(dispatcher_, CreateQuicSession(1, _, client_address)).Times(0);
275 EXPECT_CALL(*time_wait_list_manager_, ProcessPacket(_, _, _, _, _)).Times(0); 286 EXPECT_CALL(*time_wait_list_manager_, ProcessPacket(_, _, _, _, _)).Times(0);
276 ProcessPacket(client_address, 1, true, "foo"); 287 ProcessPacket(client_address, 1, true, "foo");
277 EXPECT_EQ(client_address, dispatcher_.current_client_address()); 288 EXPECT_EQ(client_address, dispatcher_.current_client_address());
278 EXPECT_EQ(server_address_, dispatcher_.current_server_address()); 289 EXPECT_EQ(server_address_, dispatcher_.current_server_address());
279 } 290 }
280 291
281 class BlockingWriter : public QuicPacketWriterWrapper { 292 class BlockingWriter : public QuicPacketWriterWrapper {
282 public: 293 public:
283 BlockingWriter() : write_blocked_(false) {} 294 BlockingWriter() : write_blocked_(false) {}
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 // And we'll resume where we left off when we get another call. 480 // And we'll resume where we left off when we get another call.
470 EXPECT_CALL(*connection2(), OnCanWrite()); 481 EXPECT_CALL(*connection2(), OnCanWrite());
471 dispatcher_.OnCanWrite(); 482 dispatcher_.OnCanWrite();
472 EXPECT_FALSE(dispatcher_.HasPendingWrites()); 483 EXPECT_FALSE(dispatcher_.HasPendingWrites());
473 } 484 }
474 485
475 } // namespace 486 } // namespace
476 } // namespace test 487 } // namespace test
477 } // namespace tools 488 } // namespace tools
478 } // namespace net 489 } // namespace net
OLDNEW
« no previous file with comments | « net/tools/quic/quic_dispatcher.cc ('k') | net/tools/quic/test_tools/quic_test_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698