| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_time_wait_list_manager.h" | 5 #include "net/tools/quic/quic_time_wait_list_manager.h" |
| 6 | 6 |
| 7 #include <errno.h> | 7 #include <errno.h> |
| 8 | 8 |
| 9 #include "net/quic/crypto/crypto_protocol.h" | 9 #include "net/quic/crypto/crypto_protocol.h" |
| 10 #include "net/quic/crypto/null_encrypter.h" | 10 #include "net/quic/crypto/null_encrypter.h" |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 QuicTimeWaitListManagerTest() | 79 QuicTimeWaitListManagerTest() |
| 80 : time_wait_list_manager_( | 80 : time_wait_list_manager_( |
| 81 &writer_, &epoll_server_, QuicSupportedVersions()), | 81 &writer_, &epoll_server_, QuicSupportedVersions()), |
| 82 framer_(QuicSupportedVersions(), QuicTime::Zero(), true), | 82 framer_(QuicSupportedVersions(), QuicTime::Zero(), true), |
| 83 guid_(45) { | 83 guid_(45) { |
| 84 } | 84 } |
| 85 | 85 |
| 86 virtual ~QuicTimeWaitListManagerTest() {} | 86 virtual ~QuicTimeWaitListManagerTest() {} |
| 87 | 87 |
| 88 void AddGuid(QuicGuid guid) { | 88 void AddGuid(QuicGuid guid) { |
| 89 AddGuid(guid, test::QuicVersionMax(), NULL); | 89 AddGuid(guid, net::test::QuicVersionMax(), NULL); |
| 90 } | 90 } |
| 91 | 91 |
| 92 void AddGuid(QuicGuid guid, | 92 void AddGuid(QuicGuid guid, |
| 93 QuicVersion version, | 93 QuicVersion version, |
| 94 QuicEncryptedPacket* packet) { | 94 QuicEncryptedPacket* packet) { |
| 95 time_wait_list_manager_.AddGuidToTimeWait(guid, version, packet); | 95 time_wait_list_manager_.AddGuidToTimeWait(guid, version, packet); |
| 96 } | 96 } |
| 97 | 97 |
| 98 bool IsGuidInTimeWait(QuicGuid guid) { | 98 bool IsGuidInTimeWait(QuicGuid guid) { |
| 99 return time_wait_list_manager_.IsGuidInTimeWait(guid); | 99 return time_wait_list_manager_.IsGuidInTimeWait(guid); |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 | 189 |
| 190 TEST_F(QuicTimeWaitListManagerTest, CheckGuidInTimeWait) { | 190 TEST_F(QuicTimeWaitListManagerTest, CheckGuidInTimeWait) { |
| 191 EXPECT_FALSE(IsGuidInTimeWait(guid_)); | 191 EXPECT_FALSE(IsGuidInTimeWait(guid_)); |
| 192 AddGuid(guid_); | 192 AddGuid(guid_); |
| 193 EXPECT_TRUE(IsGuidInTimeWait(guid_)); | 193 EXPECT_TRUE(IsGuidInTimeWait(guid_)); |
| 194 } | 194 } |
| 195 | 195 |
| 196 TEST_F(QuicTimeWaitListManagerTest, SendConnectionClose) { | 196 TEST_F(QuicTimeWaitListManagerTest, SendConnectionClose) { |
| 197 size_t kConnectionCloseLength = 100; | 197 size_t kConnectionCloseLength = 100; |
| 198 AddGuid(guid_, | 198 AddGuid(guid_, |
| 199 QuicVersionMax(), | 199 net::test::QuicVersionMax(), |
| 200 new QuicEncryptedPacket( | 200 new QuicEncryptedPacket( |
| 201 new char[kConnectionCloseLength], kConnectionCloseLength, true)); | 201 new char[kConnectionCloseLength], kConnectionCloseLength, true)); |
| 202 const int kRandomSequenceNumber = 1; | 202 const int kRandomSequenceNumber = 1; |
| 203 scoped_ptr<QuicEncryptedPacket> packet( | 203 scoped_ptr<QuicEncryptedPacket> packet( |
| 204 ConstructEncryptedPacket(ENCRYPTION_NONE, guid_, kRandomSequenceNumber)); | 204 ConstructEncryptedPacket(ENCRYPTION_NONE, guid_, kRandomSequenceNumber)); |
| 205 EXPECT_CALL(writer_, WritePacket(_, kConnectionCloseLength, | 205 EXPECT_CALL(writer_, WritePacket(_, kConnectionCloseLength, |
| 206 server_address_.address(), | 206 server_address_.address(), |
| 207 client_address_, | 207 client_address_, |
| 208 &time_wait_list_manager_)) | 208 &time_wait_list_manager_)) |
| 209 .WillOnce(Return(WriteResult(WRITE_STATUS_OK, 1))); | 209 .WillOnce(Return(WriteResult(WRITE_STATUS_OK, 1))); |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 other_packet->length()))); | 385 other_packet->length()))); |
| 386 time_wait_list_manager_.OnCanWrite(); | 386 time_wait_list_manager_.OnCanWrite(); |
| 387 EXPECT_FALSE( | 387 EXPECT_FALSE( |
| 388 QuicTimeWaitListManagerPeer::is_write_blocked(&time_wait_list_manager_)); | 388 QuicTimeWaitListManagerPeer::is_write_blocked(&time_wait_list_manager_)); |
| 389 } | 389 } |
| 390 | 390 |
| 391 TEST_F(QuicTimeWaitListManagerTest, MakeSureFramerUsesCorrectVersion) { | 391 TEST_F(QuicTimeWaitListManagerTest, MakeSureFramerUsesCorrectVersion) { |
| 392 const int kRandomSequenceNumber = 1; | 392 const int kRandomSequenceNumber = 1; |
| 393 scoped_ptr<QuicEncryptedPacket> packet; | 393 scoped_ptr<QuicEncryptedPacket> packet; |
| 394 | 394 |
| 395 AddGuid(guid_, test::QuicVersionMin(), NULL); | 395 AddGuid(guid_, net::test::QuicVersionMin(), NULL); |
| 396 framer_.set_version(test::QuicVersionMin()); | 396 framer_.set_version(net::test::QuicVersionMin()); |
| 397 packet.reset( | 397 packet.reset( |
| 398 ConstructEncryptedPacket(ENCRYPTION_NONE, guid_, kRandomSequenceNumber)); | 398 ConstructEncryptedPacket(ENCRYPTION_NONE, guid_, kRandomSequenceNumber)); |
| 399 | 399 |
| 400 // Reset packet should be written, using the minimum quic version. | 400 // Reset packet should be written, using the minimum quic version. |
| 401 EXPECT_CALL(writer_, WritePacket(_, _, _, _, _)).Times(1) | 401 EXPECT_CALL(writer_, WritePacket(_, _, _, _, _)).Times(1) |
| 402 .WillOnce(Return(WriteResult(WRITE_STATUS_OK, 0))); | 402 .WillOnce(Return(WriteResult(WRITE_STATUS_OK, 0))); |
| 403 ProcessPacket(guid_, *packet); | 403 ProcessPacket(guid_, *packet); |
| 404 EXPECT_EQ(QuicTimeWaitListManagerPeer::version(&time_wait_list_manager_), | 404 EXPECT_EQ(QuicTimeWaitListManagerPeer::version(&time_wait_list_manager_), |
| 405 test::QuicVersionMin()); | 405 net::test::QuicVersionMin()); |
| 406 | 406 |
| 407 // New guid | 407 // New guid |
| 408 ++guid_; | 408 ++guid_; |
| 409 | 409 |
| 410 AddGuid(guid_, test::QuicVersionMax(), NULL); | 410 AddGuid(guid_, net::test::QuicVersionMax(), NULL); |
| 411 framer_.set_version(test::QuicVersionMax()); | 411 framer_.set_version(net::test::QuicVersionMax()); |
| 412 packet.reset( | 412 packet.reset( |
| 413 ConstructEncryptedPacket(ENCRYPTION_NONE, guid_, kRandomSequenceNumber)); | 413 ConstructEncryptedPacket(ENCRYPTION_NONE, guid_, kRandomSequenceNumber)); |
| 414 | 414 |
| 415 // Reset packet should be written, using the maximum quic version. | 415 // Reset packet should be written, using the maximum quic version. |
| 416 EXPECT_CALL(writer_, WritePacket(_, _, _, _, _)).Times(1) | 416 EXPECT_CALL(writer_, WritePacket(_, _, _, _, _)).Times(1) |
| 417 .WillOnce(Return(WriteResult(WRITE_STATUS_OK, 0))); | 417 .WillOnce(Return(WriteResult(WRITE_STATUS_OK, 0))); |
| 418 ProcessPacket(guid_, *packet); | 418 ProcessPacket(guid_, *packet); |
| 419 EXPECT_EQ(QuicTimeWaitListManagerPeer::version(&time_wait_list_manager_), | 419 EXPECT_EQ(QuicTimeWaitListManagerPeer::version(&time_wait_list_manager_), |
| 420 test::QuicVersionMax()); | 420 net::test::QuicVersionMax()); |
| 421 } | 421 } |
| 422 | 422 |
| 423 TEST_F(QuicTimeWaitListManagerTest, GetQuicVersionFromMap) { | 423 TEST_F(QuicTimeWaitListManagerTest, GetQuicVersionFromMap) { |
| 424 const int kGuid1 = 123; | 424 const int kGuid1 = 123; |
| 425 const int kGuid2 = 456; | 425 const int kGuid2 = 456; |
| 426 const int kGuid3 = 789; | 426 const int kGuid3 = 789; |
| 427 | 427 |
| 428 AddGuid(kGuid1, test::QuicVersionMin(), NULL); | 428 AddGuid(kGuid1, net::test::QuicVersionMin(), NULL); |
| 429 AddGuid(kGuid2, test::QuicVersionMax(), NULL); | 429 AddGuid(kGuid2, net::test::QuicVersionMax(), NULL); |
| 430 AddGuid(kGuid3, test::QuicVersionMax(), NULL); | 430 AddGuid(kGuid3, net::test::QuicVersionMax(), NULL); |
| 431 | 431 |
| 432 EXPECT_EQ(test::QuicVersionMin(), | 432 EXPECT_EQ(net::test::QuicVersionMin(), |
| 433 QuicTimeWaitListManagerPeer::GetQuicVersionFromGuid( | 433 QuicTimeWaitListManagerPeer::GetQuicVersionFromGuid( |
| 434 &time_wait_list_manager_, kGuid1)); | 434 &time_wait_list_manager_, kGuid1)); |
| 435 EXPECT_EQ(test::QuicVersionMax(), | 435 EXPECT_EQ(net::test::QuicVersionMax(), |
| 436 QuicTimeWaitListManagerPeer::GetQuicVersionFromGuid( | 436 QuicTimeWaitListManagerPeer::GetQuicVersionFromGuid( |
| 437 &time_wait_list_manager_, kGuid2)); | 437 &time_wait_list_manager_, kGuid2)); |
| 438 EXPECT_EQ(test::QuicVersionMax(), | 438 EXPECT_EQ(net::test::QuicVersionMax(), |
| 439 QuicTimeWaitListManagerPeer::GetQuicVersionFromGuid( | 439 QuicTimeWaitListManagerPeer::GetQuicVersionFromGuid( |
| 440 &time_wait_list_manager_, kGuid3)); | 440 &time_wait_list_manager_, kGuid3)); |
| 441 } | 441 } |
| 442 | 442 |
| 443 } // namespace | 443 } // namespace |
| 444 } // namespace test | 444 } // namespace test |
| 445 } // namespace tools | 445 } // namespace tools |
| 446 } // namespace net | 446 } // namespace net |
| OLD | NEW |