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

Unified Diff: net/tools/quic/quic_time_wait_list_manager_test.cc

Issue 1421853006: Landing Recent QUIC changes until: Fri Oct 30 22:23:58 2015 +0000 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix comments Created 5 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: net/tools/quic/quic_time_wait_list_manager_test.cc
diff --git a/net/tools/quic/quic_time_wait_list_manager_test.cc b/net/tools/quic/quic_time_wait_list_manager_test.cc
index f78fbcbc1ff725ba09db16074ba7aeb7f9279ec4..0e925cba8988f69462dd7343c37cacb04648a9f1 100644
--- a/net/tools/quic/quic_time_wait_list_manager_test.cc
+++ b/net/tools/quic/quic_time_wait_list_manager_test.cc
@@ -97,9 +97,6 @@ class QuicTimeWaitListManagerTest : public ::testing::Test {
QuicTimeWaitListManagerTest()
: helper_(&epoll_server_),
time_wait_list_manager_(&writer_, &visitor_, &helper_),
- framer_(QuicSupportedVersions(),
- QuicTime::Zero(),
- Perspective::IS_SERVER),
connection_id_(45),
client_address_(net::test::TestPeerIPAddress(), kTestPort),
writer_is_blocked_(false) {}
@@ -119,17 +116,19 @@ class QuicTimeWaitListManagerTest : public ::testing::Test {
}
void AddStatelessConnectionId(QuicConnectionId connection_id) {
+ std::vector<QuicEncryptedPacket*> termination_packets;
+ termination_packets.push_back(new QuicEncryptedPacket(nullptr, 0, false));
time_wait_list_manager_.AddConnectionIdToTimeWait(
connection_id, QuicVersionMax(),
- /*connection_rejected_statelessly=*/true, nullptr);
+ /*connection_rejected_statelessly=*/true, &termination_packets);
}
void AddConnectionId(QuicConnectionId connection_id,
QuicVersion version,
bool connection_rejected_statelessly,
- QuicEncryptedPacket* packet) {
+ std::vector<QuicEncryptedPacket*>* packets) {
time_wait_list_manager_.AddConnectionIdToTimeWait(
- connection_id, version, connection_rejected_statelessly, packet);
+ connection_id, version, connection_rejected_statelessly, packets);
}
bool IsConnectionIdInTimeWait(QuicConnectionId connection_id) {
@@ -144,33 +143,10 @@ class QuicTimeWaitListManagerTest : public ::testing::Test {
}
QuicEncryptedPacket* ConstructEncryptedPacket(
- EncryptionLevel level,
QuicConnectionId connection_id,
QuicPacketNumber packet_number) {
- QuicPacketHeader header;
- header.public_header.connection_id = connection_id;
- header.public_header.connection_id_length = PACKET_8BYTE_CONNECTION_ID;
- header.public_header.version_flag = false;
- header.public_header.reset_flag = false;
- header.public_header.packet_number_length = PACKET_6BYTE_PACKET_NUMBER;
- header.packet_number = packet_number;
- header.entropy_flag = false;
- header.entropy_hash = 0;
- header.fec_flag = false;
- header.is_in_fec_group = NOT_IN_FEC_GROUP;
- header.fec_group = 0;
- QuicStreamFrame stream_frame(1, false, 0, StringPiece("data"));
- QuicFrame frame(&stream_frame);
- QuicFrames frames;
- frames.push_back(frame);
- scoped_ptr<QuicPacket> packet(
- BuildUnsizedDataPacket(&framer_, header, frames));
- EXPECT_TRUE(packet != nullptr);
- char buffer[kMaxPacketSize];
- scoped_ptr<QuicEncryptedPacket> encrypted(framer_.EncryptPayload(
- ENCRYPTION_NONE, packet_number, *packet, buffer, kMaxPacketSize));
- EXPECT_TRUE(encrypted != nullptr);
- return encrypted->Clone();
+ return net::test::ConstructEncryptedPacket(connection_id, false, false,
+ packet_number, "data");
}
NiceMock<MockFakeTimeEpollServer> epoll_server_;
@@ -178,7 +154,6 @@ class QuicTimeWaitListManagerTest : public ::testing::Test {
StrictMock<MockPacketWriter> writer_;
StrictMock<MockQuicServerSessionVisitor> visitor_;
QuicTimeWaitListManager time_wait_list_manager_;
- QuicFramer framer_;
QuicConnectionId connection_id_;
IPEndPoint server_address_;
IPEndPoint client_address_;
@@ -246,10 +221,12 @@ TEST_F(QuicTimeWaitListManagerTest, CheckStatelessConnectionIdInTimeWait) {
TEST_F(QuicTimeWaitListManagerTest, SendConnectionClose) {
const size_t kConnectionCloseLength = 100;
EXPECT_CALL(visitor_, OnConnectionAddedToTimeWaitList(connection_id_));
+ std::vector<QuicEncryptedPacket*> termination_packets;
+ termination_packets.push_back(new QuicEncryptedPacket(
+ new char[kConnectionCloseLength], kConnectionCloseLength, true));
AddConnectionId(connection_id_, QuicVersionMax(),
/*connection_rejected_statelessly=*/false,
- new QuicEncryptedPacket(new char[kConnectionCloseLength],
- kConnectionCloseLength, true));
+ &termination_packets);
const int kRandomSequenceNumber = 1;
EXPECT_CALL(writer_, WritePacket(_, kConnectionCloseLength,
server_address_.address(),
@@ -259,6 +236,26 @@ TEST_F(QuicTimeWaitListManagerTest, SendConnectionClose) {
ProcessPacket(connection_id_, kRandomSequenceNumber);
}
+TEST_F(QuicTimeWaitListManagerTest, SendTwoConnectionCloses) {
+ const size_t kConnectionCloseLength = 100;
+ EXPECT_CALL(visitor_, OnConnectionAddedToTimeWaitList(connection_id_));
+ std::vector<QuicEncryptedPacket*> termination_packets;
+ termination_packets.push_back(new QuicEncryptedPacket(
+ new char[kConnectionCloseLength], kConnectionCloseLength, true));
+ termination_packets.push_back(new QuicEncryptedPacket(
+ new char[kConnectionCloseLength], kConnectionCloseLength, true));
+ AddConnectionId(connection_id_, QuicVersionMax(),
+ /*connection_rejected_statelessly=*/false,
+ &termination_packets);
+ const int kRandomSequenceNumber = 1;
+ EXPECT_CALL(writer_, WritePacket(_, kConnectionCloseLength,
+ server_address_.address(), client_address_))
+ .Times(2)
+ .WillRepeatedly(Return(WriteResult(WRITE_STATUS_OK, 1)));
+
+ ProcessPacket(connection_id_, kRandomSequenceNumber);
+}
+
TEST_F(QuicTimeWaitListManagerTest, SendPublicReset) {
EXPECT_CALL(visitor_, OnConnectionAddedToTimeWaitList(connection_id_));
AddConnectionId(connection_id_);
@@ -298,6 +295,11 @@ TEST_F(QuicTimeWaitListManagerTest, NoPublicResetForStatelessConnections) {
EXPECT_CALL(visitor_, OnConnectionAddedToTimeWaitList(connection_id_));
AddStatelessConnectionId(connection_id_);
const int kRandomSequenceNumber = 1;
+
+ EXPECT_CALL(writer_,
+ WritePacket(_, _, server_address_.address(), client_address_))
+ .WillOnce(Return(WriteResult(WRITE_STATUS_OK, 1)));
+
ProcessPacket(connection_id_, kRandomSequenceNumber);
}
@@ -359,7 +361,7 @@ TEST_F(QuicTimeWaitListManagerTest, SendQueuedPackets) {
AddConnectionId(connection_id);
QuicPacketNumber packet_number = 234;
scoped_ptr<QuicEncryptedPacket> packet(
- ConstructEncryptedPacket(ENCRYPTION_NONE, connection_id, packet_number));
+ ConstructEncryptedPacket(connection_id, packet_number));
// Let first write through.
EXPECT_CALL(writer_,
WritePacket(_, _, server_address_.address(), client_address_))
@@ -384,8 +386,8 @@ TEST_F(QuicTimeWaitListManagerTest, SendQueuedPackets) {
EXPECT_CALL(visitor_, OnConnectionAddedToTimeWaitList(other_connection_id));
AddConnectionId(other_connection_id);
QuicPacketNumber other_packet_number = 23423;
- scoped_ptr<QuicEncryptedPacket> other_packet(ConstructEncryptedPacket(
- ENCRYPTION_NONE, other_connection_id, other_packet_number));
+ scoped_ptr<QuicEncryptedPacket> other_packet(
+ ConstructEncryptedPacket(other_connection_id, other_packet_number));
EXPECT_CALL(writer_, WritePacket(_, _, _, _))
.Times(0);
EXPECT_CALL(visitor_, OnWriteBlocked(&time_wait_list_manager_));
@@ -439,10 +441,12 @@ TEST_F(QuicTimeWaitListManagerTest, AddConnectionIdTwice) {
AddConnectionId(connection_id_);
EXPECT_TRUE(IsConnectionIdInTimeWait(connection_id_));
const size_t kConnectionCloseLength = 100;
+ std::vector<QuicEncryptedPacket*> termination_packets;
+ termination_packets.push_back(new QuicEncryptedPacket(
+ new char[kConnectionCloseLength], kConnectionCloseLength, true));
AddConnectionId(connection_id_, QuicVersionMax(),
/*connection_rejected_statelessly=*/false,
- new QuicEncryptedPacket(new char[kConnectionCloseLength],
- kConnectionCloseLength, true));
+ &termination_packets);
EXPECT_TRUE(IsConnectionIdInTimeWait(connection_id_));
EXPECT_EQ(1u, time_wait_list_manager_.num_connections());
« no previous file with comments | « net/tools/quic/quic_time_wait_list_manager.cc ('k') | net/tools/quic/test_tools/mock_quic_time_wait_list_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698