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

Side by Side Diff: net/quic/quic_sent_packet_manager_test.cc

Issue 23691073: Land Recent QUIC changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Compiler/unittests fix Created 7 years, 3 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
« no previous file with comments | « net/quic/quic_sent_packet_manager.cc ('k') | net/quic/quic_session.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "net/quic/quic_sent_packet_manager.h"
6
7 #include "net/quic/test_tools/quic_test_utils.h"
8 #include "testing/gmock/include/gmock/gmock.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 using testing::_;
12 using testing::Return;
13 using testing::StrictMock;
14
15 namespace net {
16 namespace test {
17 namespace {
18
19 class MockHelper : public QuicSentPacketManager::HelperInterface {
20 public:
21 MOCK_METHOD0(GetPeerLargestObservedPacket, QuicPacketSequenceNumber());
22 MOCK_METHOD0(GetNextPacketSequenceNumber, QuicPacketSequenceNumber());
23 MOCK_METHOD2(OnPacketNacked, void(QuicPacketSequenceNumber sequence_number,
24 size_t nack_count));
25 };
26
27 class QuicSentPacketManagerTest : public ::testing::Test {
28 protected:
29 QuicSentPacketManagerTest()
30 : manager_(true, &helper_) {
31 }
32
33 testing::StrictMock<MockHelper> helper_;
34 QuicSentPacketManager manager_;
35 };
36
37 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedSentPacket) {
38 EXPECT_CALL(helper_, GetNextPacketSequenceNumber()).WillOnce(Return(1u));
39 EXPECT_EQ(1u, manager_.GetLeastUnackedSentPacket());
40 }
41
42 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedSentPacketUnacked) {
43 scoped_ptr<QuicPacket> packet(QuicPacket::NewDataPacket(
44 NULL, 0, false, PACKET_8BYTE_GUID, false, PACKET_6BYTE_SEQUENCE_NUMBER));
45 SerializedPacket serialized_packet(1u, PACKET_6BYTE_SEQUENCE_NUMBER,
46 packet.get(), 7u,
47 new RetransmittableFrames());
48
49 manager_.OnSerializedPacket(serialized_packet);
50 EXPECT_EQ(1u, manager_.GetLeastUnackedSentPacket());
51 }
52
53 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedSentPacketUnackedFec) {
54 scoped_ptr<QuicPacket> packet(QuicPacket::NewFecPacket(
55 NULL, 0, false, PACKET_8BYTE_GUID, false, PACKET_6BYTE_SEQUENCE_NUMBER));
56 SerializedPacket serialized_packet(1u, PACKET_6BYTE_SEQUENCE_NUMBER,
57 packet.get(), 7u, NULL);
58
59 manager_.OnSerializedPacket(serialized_packet);
60 // FEC packets do not count as "unacked".
61 EXPECT_CALL(helper_, GetNextPacketSequenceNumber()).WillOnce(Return(2u));
62 EXPECT_EQ(2u, manager_.GetLeastUnackedSentPacket());
63 }
64
65 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedSentPacketDiscardUnacked) {
66 scoped_ptr<QuicPacket> packet(QuicPacket::NewDataPacket(
67 NULL, 0, false, PACKET_8BYTE_GUID, false, PACKET_6BYTE_SEQUENCE_NUMBER));
68 SerializedPacket serialized_packet(1u, PACKET_6BYTE_SEQUENCE_NUMBER,
69 packet.get(), 7u,
70 new RetransmittableFrames());
71
72 manager_.OnSerializedPacket(serialized_packet);
73 manager_.DiscardPacket(1u);
74 EXPECT_CALL(helper_, GetNextPacketSequenceNumber()).WillOnce(Return(2u));
75 EXPECT_EQ(2u, manager_.GetLeastUnackedSentPacket());
76 }
77
78 } // namespace
79 } // namespace test
80 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_sent_packet_manager.cc ('k') | net/quic/quic_session.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698