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 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 virtual ~QuicTimeWaitListManagerTest() OVERRIDE {} | 99 virtual ~QuicTimeWaitListManagerTest() OVERRIDE {} |
100 | 100 |
101 virtual void SetUp() OVERRIDE { | 101 virtual void SetUp() OVERRIDE { |
102 EXPECT_CALL(writer_, IsWriteBlocked()) | 102 EXPECT_CALL(writer_, IsWriteBlocked()) |
103 .WillRepeatedly(ReturnPointee(&writer_is_blocked_)); | 103 .WillRepeatedly(ReturnPointee(&writer_is_blocked_)); |
104 EXPECT_CALL(writer_, IsWriteBlockedDataBuffered()) | 104 EXPECT_CALL(writer_, IsWriteBlockedDataBuffered()) |
105 .WillRepeatedly(Return(false)); | 105 .WillRepeatedly(Return(false)); |
106 } | 106 } |
107 | 107 |
108 void AddConnectionId(QuicConnectionId connection_id) { | 108 void AddConnectionId(QuicConnectionId connection_id) { |
109 AddConnectionId(connection_id, QuicVersionMax(), NULL); | 109 AddConnectionId(connection_id, QuicVersionMax(), nullptr); |
110 } | 110 } |
111 | 111 |
112 void AddConnectionId(QuicConnectionId connection_id, | 112 void AddConnectionId(QuicConnectionId connection_id, |
113 QuicVersion version, | 113 QuicVersion version, |
114 QuicEncryptedPacket* packet) { | 114 QuicEncryptedPacket* packet) { |
115 time_wait_list_manager_.AddConnectionIdToTimeWait( | 115 time_wait_list_manager_.AddConnectionIdToTimeWait( |
116 connection_id, version, packet); | 116 connection_id, version, packet); |
117 } | 117 } |
118 | 118 |
119 bool IsConnectionIdInTimeWait(QuicConnectionId connection_id) { | 119 bool IsConnectionIdInTimeWait(QuicConnectionId connection_id) { |
120 return time_wait_list_manager_.IsConnectionIdInTimeWait(connection_id); | 120 return time_wait_list_manager_.IsConnectionIdInTimeWait(connection_id); |
121 } | 121 } |
122 | 122 |
123 void ProcessPacket(QuicConnectionId connection_id, | 123 void ProcessPacket(QuicConnectionId connection_id, |
124 QuicPacketSequenceNumber sequence_number) { | 124 QuicPacketSequenceNumber sequence_number) { |
125 QuicEncryptedPacket packet(NULL, 0); | 125 QuicEncryptedPacket packet(nullptr, 0); |
126 time_wait_list_manager_.ProcessPacket(server_address_, | 126 time_wait_list_manager_.ProcessPacket(server_address_, |
127 client_address_, | 127 client_address_, |
128 connection_id, | 128 connection_id, |
129 sequence_number, | 129 sequence_number, |
130 packet); | 130 packet); |
131 } | 131 } |
132 | 132 |
133 QuicEncryptedPacket* ConstructEncryptedPacket( | 133 QuicEncryptedPacket* ConstructEncryptedPacket( |
134 EncryptionLevel level, | 134 EncryptionLevel level, |
135 QuicConnectionId connection_id, | 135 QuicConnectionId connection_id, |
136 QuicPacketSequenceNumber sequence_number) { | 136 QuicPacketSequenceNumber sequence_number) { |
137 QuicPacketHeader header; | 137 QuicPacketHeader header; |
138 header.public_header.connection_id = connection_id; | 138 header.public_header.connection_id = connection_id; |
139 header.public_header.connection_id_length = PACKET_8BYTE_CONNECTION_ID; | 139 header.public_header.connection_id_length = PACKET_8BYTE_CONNECTION_ID; |
140 header.public_header.version_flag = false; | 140 header.public_header.version_flag = false; |
141 header.public_header.reset_flag = false; | 141 header.public_header.reset_flag = false; |
142 header.public_header.sequence_number_length = PACKET_6BYTE_SEQUENCE_NUMBER; | 142 header.public_header.sequence_number_length = PACKET_6BYTE_SEQUENCE_NUMBER; |
143 header.packet_sequence_number = sequence_number; | 143 header.packet_sequence_number = sequence_number; |
144 header.entropy_flag = false; | 144 header.entropy_flag = false; |
145 header.entropy_hash = 0; | 145 header.entropy_hash = 0; |
146 header.fec_flag = false; | 146 header.fec_flag = false; |
147 header.is_in_fec_group = NOT_IN_FEC_GROUP; | 147 header.is_in_fec_group = NOT_IN_FEC_GROUP; |
148 header.fec_group = 0; | 148 header.fec_group = 0; |
149 QuicStreamFrame stream_frame(1, false, 0, MakeIOVector("data")); | 149 QuicStreamFrame stream_frame(1, false, 0, MakeIOVector("data")); |
150 QuicFrame frame(&stream_frame); | 150 QuicFrame frame(&stream_frame); |
151 QuicFrames frames; | 151 QuicFrames frames; |
152 frames.push_back(frame); | 152 frames.push_back(frame); |
153 scoped_ptr<QuicPacket> packet( | 153 scoped_ptr<QuicPacket> packet( |
154 BuildUnsizedDataPacket(&framer_, header, frames).packet); | 154 BuildUnsizedDataPacket(&framer_, header, frames).packet); |
155 EXPECT_TRUE(packet != NULL); | 155 EXPECT_TRUE(packet != nullptr); |
156 QuicEncryptedPacket* encrypted = framer_.EncryptPacket(ENCRYPTION_NONE, | 156 QuicEncryptedPacket* encrypted = framer_.EncryptPacket(ENCRYPTION_NONE, |
157 sequence_number, | 157 sequence_number, |
158 *packet); | 158 *packet); |
159 EXPECT_TRUE(encrypted != NULL); | 159 EXPECT_TRUE(encrypted != nullptr); |
160 return encrypted; | 160 return encrypted; |
161 } | 161 } |
162 | 162 |
163 NiceMock<MockFakeTimeEpollServer> epoll_server_; | 163 NiceMock<MockFakeTimeEpollServer> epoll_server_; |
164 StrictMock<MockPacketWriter> writer_; | 164 StrictMock<MockPacketWriter> writer_; |
165 StrictMock<MockQuicServerSessionVisitor> visitor_; | 165 StrictMock<MockQuicServerSessionVisitor> visitor_; |
166 QuicTimeWaitListManager time_wait_list_manager_; | 166 QuicTimeWaitListManager time_wait_list_manager_; |
167 QuicFramer framer_; | 167 QuicFramer framer_; |
168 QuicConnectionId connection_id_; | 168 QuicConnectionId connection_id_; |
169 IPEndPoint server_address_; | 169 IPEndPoint server_address_; |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 .WillOnce(Return(WriteResult(WRITE_STATUS_OK, | 370 .WillOnce(Return(WriteResult(WRITE_STATUS_OK, |
371 other_packet->length()))); | 371 other_packet->length()))); |
372 time_wait_list_manager_.OnCanWrite(); | 372 time_wait_list_manager_.OnCanWrite(); |
373 } | 373 } |
374 | 374 |
375 TEST_F(QuicTimeWaitListManagerTest, GetQuicVersionFromMap) { | 375 TEST_F(QuicTimeWaitListManagerTest, GetQuicVersionFromMap) { |
376 const int kConnectionId1 = 123; | 376 const int kConnectionId1 = 123; |
377 const int kConnectionId2 = 456; | 377 const int kConnectionId2 = 456; |
378 const int kConnectionId3 = 789; | 378 const int kConnectionId3 = 789; |
379 | 379 |
380 AddConnectionId(kConnectionId1, QuicVersionMin(), NULL); | 380 AddConnectionId(kConnectionId1, QuicVersionMin(), nullptr); |
381 AddConnectionId(kConnectionId2, QuicVersionMax(), NULL); | 381 AddConnectionId(kConnectionId2, QuicVersionMax(), nullptr); |
382 AddConnectionId(kConnectionId3, QuicVersionMax(), NULL); | 382 AddConnectionId(kConnectionId3, QuicVersionMax(), nullptr); |
383 | 383 |
384 EXPECT_EQ(QuicVersionMin(), | 384 EXPECT_EQ(QuicVersionMin(), |
385 QuicTimeWaitListManagerPeer::GetQuicVersionFromConnectionId( | 385 QuicTimeWaitListManagerPeer::GetQuicVersionFromConnectionId( |
386 &time_wait_list_manager_, kConnectionId1)); | 386 &time_wait_list_manager_, kConnectionId1)); |
387 EXPECT_EQ(QuicVersionMax(), | 387 EXPECT_EQ(QuicVersionMax(), |
388 QuicTimeWaitListManagerPeer::GetQuicVersionFromConnectionId( | 388 QuicTimeWaitListManagerPeer::GetQuicVersionFromConnectionId( |
389 &time_wait_list_manager_, kConnectionId2)); | 389 &time_wait_list_manager_, kConnectionId2)); |
390 EXPECT_EQ(QuicVersionMax(), | 390 EXPECT_EQ(QuicVersionMax(), |
391 QuicTimeWaitListManagerPeer::GetQuicVersionFromConnectionId( | 391 QuicTimeWaitListManagerPeer::GetQuicVersionFromConnectionId( |
392 &time_wait_list_manager_, kConnectionId3)); | 392 &time_wait_list_manager_, kConnectionId3)); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 EXPECT_CALL(epoll_server_, RegisterAlarm(_, _)); | 452 EXPECT_CALL(epoll_server_, RegisterAlarm(_, _)); |
453 | 453 |
454 time_wait_list_manager_.CleanUpOldConnectionIds(); | 454 time_wait_list_manager_.CleanUpOldConnectionIds(); |
455 EXPECT_FALSE(IsConnectionIdInTimeWait(kConnectionId1)); | 455 EXPECT_FALSE(IsConnectionIdInTimeWait(kConnectionId1)); |
456 EXPECT_TRUE(IsConnectionIdInTimeWait(kConnectionId2)); | 456 EXPECT_TRUE(IsConnectionIdInTimeWait(kConnectionId2)); |
457 } | 457 } |
458 } // namespace | 458 } // namespace |
459 } // namespace test | 459 } // namespace test |
460 } // namespace tools | 460 } // namespace tools |
461 } // namespace net | 461 } // namespace net |
OLD | NEW |