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

Unified Diff: net/quic/core/quic_framer_test.cc

Issue 2403193003: Landing Recent QUIC changes until 9:41 AM, Oct 10, 2016 UTC-7 (Closed)
Patch Set: git cl format Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/core/quic_framer.cc ('k') | net/quic/core/quic_packet_creator.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/core/quic_framer_test.cc
diff --git a/net/quic/core/quic_framer_test.cc b/net/quic/core/quic_framer_test.cc
index 0ce097352de99b25e06355b2decc2a74e1d64b00..cd43369c91ee00888cce0c74065d1c423d3799ae 100644
--- a/net/quic/core/quic_framer_test.cc
+++ b/net/quic/core/quic_framer_test.cc
@@ -243,10 +243,6 @@ class TestQuicVisitor : public QuicFramerVisitorInterface {
void OnDecryptedPacket(EncryptionLevel level) override {}
bool OnPacketHeader(const QuicPacketHeader& header) override {
- if (header.fec_flag) {
- // Drop any FEC packet.
- return false;
- }
++packet_count_;
header_.reset(new QuicPacketHeader(header));
return accept_packet_;
@@ -686,7 +682,6 @@ TEST_P(QuicFramerTest, PacketHeader) {
EXPECT_FALSE(visitor_.header_->public_header.multipath_flag);
EXPECT_FALSE(visitor_.header_->public_header.reset_flag);
EXPECT_FALSE(visitor_.header_->public_header.version_flag);
- EXPECT_FALSE(visitor_.header_->fec_flag);
EXPECT_FALSE(visitor_.header_->entropy_flag);
EXPECT_EQ(0, visitor_.header_->entropy_hash);
EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number);
@@ -756,7 +751,6 @@ TEST_P(QuicFramerTest, PacketHeaderWith0ByteConnectionId) {
EXPECT_FALSE(visitor_.header_->public_header.multipath_flag);
EXPECT_FALSE(visitor_.header_->public_header.reset_flag);
EXPECT_FALSE(visitor_.header_->public_header.version_flag);
- EXPECT_FALSE(visitor_.header_->fec_flag);
EXPECT_FALSE(visitor_.header_->entropy_flag);
EXPECT_EQ(0, visitor_.header_->entropy_hash);
EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number);
@@ -831,7 +825,6 @@ TEST_P(QuicFramerTest, PacketHeaderWithVersionFlag) {
EXPECT_FALSE(visitor_.header_->public_header.reset_flag);
EXPECT_TRUE(visitor_.header_->public_header.version_flag);
EXPECT_EQ(GetParam(), visitor_.header_->public_header.versions[0]);
- EXPECT_FALSE(visitor_.header_->fec_flag);
EXPECT_FALSE(visitor_.header_->entropy_flag);
EXPECT_EQ(0, visitor_.header_->entropy_hash);
EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number);
@@ -907,7 +900,6 @@ TEST_P(QuicFramerTest, PacketHeaderWithMultipathFlag) {
EXPECT_TRUE(visitor_.header_->public_header.multipath_flag);
EXPECT_FALSE(visitor_.header_->public_header.reset_flag);
EXPECT_FALSE(visitor_.header_->public_header.version_flag);
- EXPECT_FALSE(visitor_.header_->fec_flag);
EXPECT_FALSE(visitor_.header_->entropy_flag);
EXPECT_EQ(0, visitor_.header_->entropy_hash);
EXPECT_EQ(kPathId, visitor_.header_->path_id);
@@ -990,7 +982,6 @@ TEST_P(QuicFramerTest, PacketHeaderWithBothVersionFlagAndMultipathFlag) {
EXPECT_FALSE(visitor_.header_->public_header.reset_flag);
EXPECT_TRUE(visitor_.header_->public_header.version_flag);
EXPECT_EQ(GetParam(), visitor_.header_->public_header.versions[0]);
- EXPECT_FALSE(visitor_.header_->fec_flag);
EXPECT_FALSE(visitor_.header_->entropy_flag);
EXPECT_EQ(0, visitor_.header_->entropy_hash);
EXPECT_EQ(kPathId, visitor_.header_->path_id);
@@ -1235,7 +1226,6 @@ TEST_P(QuicFramerTest, PacketHeaderWith4BytePacketNumber) {
EXPECT_FALSE(visitor_.header_->public_header.multipath_flag);
EXPECT_FALSE(visitor_.header_->public_header.reset_flag);
EXPECT_FALSE(visitor_.header_->public_header.version_flag);
- EXPECT_FALSE(visitor_.header_->fec_flag);
EXPECT_FALSE(visitor_.header_->entropy_flag);
EXPECT_EQ(0, visitor_.header_->entropy_hash);
EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number);
@@ -1312,7 +1302,6 @@ TEST_P(QuicFramerTest, PacketHeaderWith2BytePacketNumber) {
EXPECT_FALSE(visitor_.header_->public_header.version_flag);
EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER,
visitor_.header_->public_header.packet_number_length);
- EXPECT_FALSE(visitor_.header_->fec_flag);
EXPECT_FALSE(visitor_.header_->entropy_flag);
EXPECT_EQ(0, visitor_.header_->entropy_hash);
EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number);
@@ -1389,7 +1378,6 @@ TEST_P(QuicFramerTest, PacketHeaderWith1BytePacketNumber) {
EXPECT_FALSE(visitor_.header_->public_header.version_flag);
EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
visitor_.header_->public_header.packet_number_length);
- EXPECT_FALSE(visitor_.header_->fec_flag);
EXPECT_FALSE(visitor_.header_->entropy_flag);
EXPECT_EQ(0, visitor_.header_->entropy_hash);
EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number);
@@ -1432,7 +1420,6 @@ TEST_P(QuicFramerTest, PacketNumberDecreasesThenIncreases) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = false;
header.packet_number = kPacketNumber - 2;
@@ -1684,38 +1671,6 @@ TEST_P(QuicFramerTest, InvalidPrivateFlag) {
QUIC_INVALID_PACKET_HEADER);
};
-TEST_P(QuicFramerTest, InvalidFECGroupOffset) {
- if (framer_.version() > QUIC_VERSION_33) {
- return;
- }
- // clang-format off
- unsigned char packet[] = {
- // public flags (8 byte connection_id)
- 0x38,
- // connection_id
- 0x10, 0x32, 0x54, 0x76,
- 0x98, 0xBA, 0xDC, 0xFE,
- // packet number
- 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00,
- // private flags (fec group)
- 0x02,
- // first fec protected packet offset
- 0x10
- };
- // clang-format on
- if (framer_.version() > QUIC_VERSION_31) {
- CheckProcessingFails(packet, arraysize(packet),
- "Illegal private flags value.",
- QUIC_INVALID_PACKET_HEADER);
- } else {
- CheckProcessingFails(packet, arraysize(packet),
- "First fec protected packet offset must be less "
- "than the packet number.",
- QUIC_INVALID_PACKET_HEADER);
- }
-};
-
TEST_P(QuicFramerTest, PaddingFrame) {
// clang-format off
unsigned char packet[] = {
@@ -2376,133 +2331,6 @@ TEST_P(QuicFramerTest, RejectPublicHeader) {
ASSERT_FALSE(visitor_.header_.get());
}
-TEST_P(QuicFramerTest, AckFrameTwoTimestamp) {
- // clang-format off
- unsigned char packet[] = {
- // public flags (8 byte connection_id)
- 0x38,
- // connection_id
- 0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE,
- // packet number
- 0xA8, 0x9A, 0x78, 0x56, 0x34, 0x12,
- // private flags (entropy)
- 0x01,
-
- // frame type (ack frame)
- // (has nacks, not truncated, 6 byte largest observed, 1 byte delta)
- 0x6C,
- // entropy hash of all received packets.
- 0xBA,
- // largest observed packet number
- 0xBF, 0x9A, 0x78, 0x56, 0x34, 0x12,
- // Zero delta time.
- 0x00, 0x00,
- // Number of timestamps.
- 0x02,
- // Delta from largest observed.
- 0x01,
- // Delta time.
- 0x10, 0x32, 0x54, 0x76,
- // Delta from largest observed.
- 0x02,
- // Delta time.
- 0x10, 0x32,
- // num missing packets
- 0x01,
- // missing packet delta
- 0x01,
- // 0 more missing packets in range.
- 0x00,
- // Number of revived packets.
- 0x00,
- };
- // clang-format on
-
- if (framer_.version() > QUIC_VERSION_31) {
- return;
- }
-
- QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
- EXPECT_TRUE(framer_.ProcessPacket(encrypted));
-
- EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
- ASSERT_TRUE(visitor_.header_.get());
- EXPECT_TRUE(CheckDecryption(encrypted, !kIncludeVersion, !kIncludePathId,
- !kIncludeDiversificationNonce));
-
- EXPECT_EQ(0u, visitor_.stream_frames_.size());
- ASSERT_EQ(1u, visitor_.ack_frames_.size());
- const QuicAckFrame& frame = *visitor_.ack_frames_[0];
- EXPECT_EQ(0xBA, frame.entropy_hash);
- EXPECT_EQ(kLargestObserved, frame.largest_observed);
- ASSERT_EQ(1u, frame.packets.NumPacketsSlow());
- ASSERT_EQ(2u, frame.received_packet_times.size());
- EXPECT_EQ(kMissingPacket, frame.packets.Min());
-
- const size_t kReceivedEntropyOffset = kQuicFrameTypeSize;
- const size_t kLargestObservedOffset =
- kReceivedEntropyOffset + kQuicEntropyHashSize;
- const size_t kMissingDeltaTimeOffset =
- kLargestObservedOffset + PACKET_6BYTE_PACKET_NUMBER;
- const size_t kNumTimestampsOffset =
- kMissingDeltaTimeOffset + kQuicDeltaTimeLargestObservedSize;
- const size_t kTimestampDeltaLargestObserved1 =
- kNumTimestampsOffset + kQuicNumTimestampsSize;
- const size_t kTimestampTimeDeltaLargestObserved1 =
- kTimestampDeltaLargestObserved1 + 1;
- const size_t kTimestampDeltaLargestObserved2 =
- kTimestampTimeDeltaLargestObserved1 + 4;
- const size_t kTimestampTimeDeltaLargestObserved2 =
- kTimestampDeltaLargestObserved2 + 1;
- const size_t kNumMissingPacketOffset =
- kTimestampTimeDeltaLargestObserved2 + 2;
- const size_t kMissingPacketsOffset =
- kNumMissingPacketOffset + kNumberOfNackRangesSize;
- const size_t kMissingPacketsRange =
- kMissingPacketsOffset + PACKET_1BYTE_PACKET_NUMBER;
- const size_t kRevivedPacketsLength =
- kMissingPacketsRange + PACKET_1BYTE_PACKET_NUMBER;
- // Now test framing boundaries.
- const size_t ack_frame_size =
- kRevivedPacketsLength + PACKET_1BYTE_PACKET_NUMBER;
- for (size_t i = kQuicFrameTypeSize; i < ack_frame_size; ++i) {
- string expected_error;
- if (i < kLargestObservedOffset) {
- expected_error = "Unable to read entropy hash for received packets.";
- } else if (i < kMissingDeltaTimeOffset) {
- expected_error = "Unable to read largest observed.";
- } else if (i < kNumTimestampsOffset) {
- expected_error = "Unable to read ack delay time.";
- } else if (i < kTimestampDeltaLargestObserved1) {
- expected_error = "Unable to read num received packets.";
- } else if (i < kTimestampTimeDeltaLargestObserved1) {
- expected_error = "Unable to read sequence delta in received packets.";
- } else if (i < kTimestampDeltaLargestObserved2) {
- expected_error = "Unable to read time delta in received packets.";
- } else if (i < kTimestampTimeDeltaLargestObserved2) {
- expected_error = "Unable to read sequence delta in received packets.";
- } else if (i < kNumMissingPacketOffset) {
- expected_error =
- "Unable to read incremental time delta in received packets.";
- } else if (i < kMissingPacketsOffset) {
- expected_error = "Unable to read num missing packet ranges.";
- } else if (i < kMissingPacketsRange) {
- expected_error = "Unable to read missing packet number delta.";
- } else if (i < kRevivedPacketsLength) {
- expected_error = "Unable to read missing packet number range.";
- } else {
- expected_error = "Unable to read num revived packets.";
- }
- CheckProcessingFails(
- packet,
- i + GetPacketHeaderSize(framer_.version(), PACKET_8BYTE_CONNECTION_ID,
- !kIncludeVersion, !kIncludePathId,
- !kIncludeDiversificationNonce,
- PACKET_6BYTE_PACKET_NUMBER),
- expected_error, QUIC_INVALID_ACK_DATA);
- }
-}
-
TEST_P(QuicFramerTest, AckFrameTwoTimestampVersion32) {
// clang-format off
unsigned char packet[] = {
@@ -2543,8 +2371,7 @@ TEST_P(QuicFramerTest, AckFrameTwoTimestampVersion32) {
};
// clang-format on
- if (framer_.version() <= QUIC_VERSION_31 ||
- framer_.version() > QUIC_VERSION_33) {
+ if (framer_.version() > QUIC_VERSION_33) {
return;
}
@@ -2620,11 +2447,11 @@ TEST_P(QuicFramerTest, AckFrameTwoTimestampVersion32) {
}
}
-TEST_P(QuicFramerTest, AckFrameOneTimestamp) {
+TEST_P(QuicFramerTest, AckFrameOneTimestampVersion32) {
// clang-format off
unsigned char packet[] = {
// public flags (8 byte connection_id)
- 0x38,
+ 0x3C,
// connection_id
0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE,
// packet number
@@ -2653,12 +2480,10 @@ TEST_P(QuicFramerTest, AckFrameOneTimestamp) {
0x01,
// 0 more missing packets in range.
0x00,
- // Number of revived packets.
- 0x00,
};
// clang-format on
- if (framer_.version() > QUIC_VERSION_31) {
+ if (framer_.version() > QUIC_VERSION_33) {
return;
}
@@ -2693,13 +2518,8 @@ TEST_P(QuicFramerTest, AckFrameOneTimestamp) {
const size_t kNumMissingPacketOffset = kTimestampTimeDeltaLargestObserved + 4;
const size_t kMissingPacketsOffset =
kNumMissingPacketOffset + kNumberOfNackRangesSize;
- const size_t kMissingPacketsRange =
- kMissingPacketsOffset + PACKET_1BYTE_PACKET_NUMBER;
- const size_t kRevivedPacketsLength =
- kMissingPacketsRange + PACKET_1BYTE_PACKET_NUMBER;
// Now test framing boundaries.
- const size_t ack_frame_size =
- kRevivedPacketsLength + PACKET_1BYTE_PACKET_NUMBER;
+ const size_t ack_frame_size = PACKET_1BYTE_PACKET_NUMBER;
for (size_t i = kQuicFrameTypeSize; i < ack_frame_size; ++i) {
string expected_error;
if (i < kLargestObservedOffset) {
@@ -2716,12 +2536,8 @@ TEST_P(QuicFramerTest, AckFrameOneTimestamp) {
expected_error = "Unable to read time delta in received packets.";
} else if (i < kMissingPacketsOffset) {
expected_error = "Unable to read num missing packet ranges.";
- } else if (i < kMissingPacketsRange) {
- expected_error = "Unable to read missing packet number delta.";
- } else if (i < kRevivedPacketsLength) {
- expected_error = "Unable to read missing packet number range.";
} else {
- expected_error = "Unable to read num revived packets.";
+ expected_error = "Unable to read missing packet number delta.";
}
CheckProcessingFails(
packet,
@@ -2733,7 +2549,7 @@ TEST_P(QuicFramerTest, AckFrameOneTimestamp) {
}
}
-TEST_P(QuicFramerTest, AckFrameOneTimestampVersion32) {
+TEST_P(QuicFramerTest, NewAckFrameOneAckBlock) {
// clang-format off
unsigned char packet[] = {
// public flags (8 byte connection_id)
@@ -2741,36 +2557,23 @@ TEST_P(QuicFramerTest, AckFrameOneTimestampVersion32) {
// connection_id
0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE,
// packet number
- 0xA8, 0x9A, 0x78, 0x56, 0x34, 0x12,
- // private flags (entropy)
- 0x01,
+ 0xBC, 0x9A, 0x78, 0x56, 0x34, 0x12,
// frame type (ack frame)
- // (has nacks, not truncated, 6 byte largest observed, 1 byte delta)
- 0x6C,
- // entropy hash of all received packets.
- 0xBA,
- // largest observed packet number
- 0xBF, 0x9A, 0x78, 0x56, 0x34, 0x12,
+ // (one ack block, 2 byte largest observed, 2 byte block length)
+ 0x45,
+ // largest acked
+ 0x34, 0x12,
// Zero delta time.
0x00, 0x00,
- // Number of timestamps.
- 0x01,
- // Delta from largest observed.
- 0x01,
- // Delta time.
- 0x10, 0x32, 0x54, 0x76,
- // num missing packets
- 0x01,
- // missing packet delta
- 0x01,
- // 0 more missing packets in range.
+ // first ack block length.
+ 0x34, 0x12,
+ // num timestamps.
0x00,
};
// clang-format on
- if (framer_.version() <= QUIC_VERSION_31 ||
- framer_.version() > QUIC_VERSION_33) {
+ if (framer_.version() <= QUIC_VERSION_33) {
return;
}
@@ -2785,46 +2588,30 @@ TEST_P(QuicFramerTest, AckFrameOneTimestampVersion32) {
EXPECT_EQ(0u, visitor_.stream_frames_.size());
ASSERT_EQ(1u, visitor_.ack_frames_.size());
const QuicAckFrame& frame = *visitor_.ack_frames_[0];
- EXPECT_EQ(0xBA, frame.entropy_hash);
- EXPECT_EQ(kLargestObserved, frame.largest_observed);
- ASSERT_EQ(1u, frame.packets.NumPacketsSlow());
- ASSERT_EQ(1u, frame.received_packet_times.size());
- EXPECT_EQ(kMissingPacket, frame.packets.Min());
+ EXPECT_EQ(kSmallLargestObserved, frame.largest_observed);
+ EXPECT_FALSE(frame.missing);
+ ASSERT_EQ(4660u, frame.packets.NumPacketsSlow());
- const size_t kReceivedEntropyOffset = kQuicFrameTypeSize;
- const size_t kLargestObservedOffset =
- kReceivedEntropyOffset + kQuicEntropyHashSize;
- const size_t kMissingDeltaTimeOffset =
- kLargestObservedOffset + PACKET_6BYTE_PACKET_NUMBER;
+ const size_t kLargestAckedOffset = kQuicFrameTypeSize;
+ const size_t kLargestAckedDeltaTimeOffset =
+ kLargestAckedOffset + PACKET_2BYTE_PACKET_NUMBER;
+ const size_t kFirstAckBlockLengthOffset =
+ kLargestAckedDeltaTimeOffset + kQuicDeltaTimeLargestObservedSize;
const size_t kNumTimestampsOffset =
- kMissingDeltaTimeOffset + kQuicDeltaTimeLargestObservedSize;
- const size_t kTimestampDeltaLargestObserved =
- kNumTimestampsOffset + kQuicNumTimestampsSize;
- const size_t kTimestampTimeDeltaLargestObserved =
- kTimestampDeltaLargestObserved + 1;
- const size_t kNumMissingPacketOffset = kTimestampTimeDeltaLargestObserved + 4;
- const size_t kMissingPacketsOffset =
- kNumMissingPacketOffset + kNumberOfNackRangesSize;
+ kFirstAckBlockLengthOffset + PACKET_2BYTE_PACKET_NUMBER;
// Now test framing boundaries.
- const size_t ack_frame_size = PACKET_1BYTE_PACKET_NUMBER;
+ const size_t ack_frame_size =
+ kFirstAckBlockLengthOffset + PACKET_2BYTE_PACKET_NUMBER;
for (size_t i = kQuicFrameTypeSize; i < ack_frame_size; ++i) {
string expected_error;
- if (i < kLargestObservedOffset) {
- expected_error = "Unable to read entropy hash for received packets.";
- } else if (i < kMissingDeltaTimeOffset) {
- expected_error = "Unable to read largest observed.";
- } else if (i < kNumTimestampsOffset) {
+ if (i < kLargestAckedDeltaTimeOffset) {
+ expected_error = "Unable to read largest acked.";
+ } else if (i < kFirstAckBlockLengthOffset) {
expected_error = "Unable to read ack delay time.";
- } else if (i < kTimestampDeltaLargestObserved) {
- expected_error = "Unable to read num received packets.";
- } else if (i < kTimestampTimeDeltaLargestObserved) {
- expected_error = "Unable to read sequence delta in received packets.";
- } else if (i < kNumMissingPacketOffset) {
- expected_error = "Unable to read time delta in received packets.";
- } else if (i < kMissingPacketsOffset) {
- expected_error = "Unable to read num missing packet ranges.";
+ } else if (i < kNumTimestampsOffset) {
+ expected_error = "Unable to read first ack block length.";
} else {
- expected_error = "Unable to read missing packet number delta.";
+ expected_error = "Unable to read num received packets.";
}
CheckProcessingFails(
packet,
@@ -2836,7 +2623,7 @@ TEST_P(QuicFramerTest, AckFrameOneTimestampVersion32) {
}
}
-TEST_P(QuicFramerTest, AckFrame) {
+TEST_P(QuicFramerTest, NewAckFrameTwoTimeStampsMultipleAckBlocks) {
// clang-format off
unsigned char packet[] = {
// public flags (8 byte connection_id)
@@ -2844,195 +2631,20 @@ TEST_P(QuicFramerTest, AckFrame) {
// connection_id
0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE,
// packet number
- 0xA8, 0x9A, 0x78, 0x56, 0x34, 0x12,
- // private flags (entropy)
- 0x01,
+ 0xBC, 0x9A, 0x78, 0x56, 0x34, 0x12,
// frame type (ack frame)
- // (has nacks, not truncated, 6 byte largest observed, 1 byte delta)
- 0x6C,
- // entropy hash of all received packets.
- 0xBA,
- // largest observed packet number
- 0xBF, 0x9A, 0x78, 0x56, 0x34, 0x12,
+ // (more than one ack block, 2 byte largest observed, 2 byte block length)
+ 0x65,
+ // largest acked
+ 0x34, 0x12,
// Zero delta time.
0x00, 0x00,
- // Number of timestamps.
- 0x00,
- // num missing packets
- 0x01,
- // missing packet delta
- 0x01,
- // 0 more missing packets in range.
- 0x00,
- // Number of revived packets.
- 0x00,
- };
- // clang-format on
-
- if (framer_.version() > QUIC_VERSION_31) {
- return;
- }
-
- QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
- EXPECT_TRUE(framer_.ProcessPacket(encrypted));
-
- EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
- ASSERT_TRUE(visitor_.header_.get());
- EXPECT_TRUE(CheckDecryption(encrypted, !kIncludeVersion, !kIncludePathId,
- !kIncludeDiversificationNonce));
-
- EXPECT_EQ(0u, visitor_.stream_frames_.size());
- ASSERT_EQ(1u, visitor_.ack_frames_.size());
- const QuicAckFrame& frame = *visitor_.ack_frames_[0];
- EXPECT_EQ(0xBA, frame.entropy_hash);
- EXPECT_EQ(kLargestObserved, frame.largest_observed);
- ASSERT_EQ(1u, frame.packets.NumPacketsSlow());
- EXPECT_EQ(kMissingPacket, frame.packets.Min());
-
- const size_t kReceivedEntropyOffset = kQuicFrameTypeSize;
- const size_t kLargestObservedOffset =
- kReceivedEntropyOffset + kQuicEntropyHashSize;
- const size_t kMissingDeltaTimeOffset =
- kLargestObservedOffset + PACKET_6BYTE_PACKET_NUMBER;
- const size_t kNumTimestampsOffset =
- kMissingDeltaTimeOffset + kQuicDeltaTimeLargestObservedSize;
- const size_t kNumMissingPacketOffset =
- kNumTimestampsOffset + kQuicNumTimestampsSize;
- const size_t kMissingPacketsOffset =
- kNumMissingPacketOffset + kNumberOfNackRangesSize;
- const size_t kMissingPacketsRange =
- kMissingPacketsOffset + PACKET_1BYTE_PACKET_NUMBER;
- const size_t kRevivedPacketsLength =
- kMissingPacketsRange + PACKET_1BYTE_PACKET_NUMBER;
- // Now test framing boundaries.
- const size_t ack_frame_size =
- kRevivedPacketsLength + PACKET_1BYTE_PACKET_NUMBER;
- for (size_t i = kQuicFrameTypeSize; i < ack_frame_size; ++i) {
- string expected_error;
- if (i < kLargestObservedOffset) {
- expected_error = "Unable to read entropy hash for received packets.";
- } else if (i < kMissingDeltaTimeOffset) {
- expected_error = "Unable to read largest observed.";
- } else if (i < kNumTimestampsOffset) {
- expected_error = "Unable to read ack delay time.";
- } else if (i < kNumMissingPacketOffset) {
- expected_error = "Unable to read num received packets.";
- } else if (i < kMissingPacketsOffset) {
- expected_error = "Unable to read num missing packet ranges.";
- } else if (i < kMissingPacketsRange) {
- expected_error = "Unable to read missing packet number delta.";
- } else if (i < kRevivedPacketsLength) {
- expected_error = "Unable to read missing packet number range.";
- } else {
- expected_error = "Unable to read num revived packets.";
- }
- CheckProcessingFails(
- packet,
- i + GetPacketHeaderSize(framer_.version(), PACKET_8BYTE_CONNECTION_ID,
- !kIncludeVersion, !kIncludePathId,
- !kIncludeDiversificationNonce,
- PACKET_6BYTE_PACKET_NUMBER),
- expected_error, QUIC_INVALID_ACK_DATA);
- }
-}
-
-TEST_P(QuicFramerTest, NewAckFrameOneAckBlock) {
- // clang-format off
- unsigned char packet[] = {
- // public flags (8 byte connection_id)
- 0x3C,
- // connection_id
- 0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE,
- // packet number
- 0xBC, 0x9A, 0x78, 0x56, 0x34, 0x12,
-
- // frame type (ack frame)
- // (one ack block, 2 byte largest observed, 2 byte block length)
- 0x45,
- // largest acked
- 0x34, 0x12,
- // Zero delta time.
- 0x00, 0x00,
- // first ack block length.
- 0x34, 0x12,
- // num timestamps.
- 0x00,
- };
- // clang-format on
-
- if (framer_.version() <= QUIC_VERSION_33) {
- return;
- }
-
- QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
- EXPECT_TRUE(framer_.ProcessPacket(encrypted));
-
- EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
- ASSERT_TRUE(visitor_.header_.get());
- EXPECT_TRUE(CheckDecryption(encrypted, !kIncludeVersion, !kIncludePathId,
- !kIncludeDiversificationNonce));
-
- EXPECT_EQ(0u, visitor_.stream_frames_.size());
- ASSERT_EQ(1u, visitor_.ack_frames_.size());
- const QuicAckFrame& frame = *visitor_.ack_frames_[0];
- EXPECT_EQ(kSmallLargestObserved, frame.largest_observed);
- EXPECT_FALSE(frame.missing);
- ASSERT_EQ(4660u, frame.packets.NumPacketsSlow());
-
- const size_t kLargestAckedOffset = kQuicFrameTypeSize;
- const size_t kLargestAckedDeltaTimeOffset =
- kLargestAckedOffset + PACKET_2BYTE_PACKET_NUMBER;
- const size_t kFirstAckBlockLengthOffset =
- kLargestAckedDeltaTimeOffset + kQuicDeltaTimeLargestObservedSize;
- const size_t kNumTimestampsOffset =
- kFirstAckBlockLengthOffset + PACKET_2BYTE_PACKET_NUMBER;
- // Now test framing boundaries.
- const size_t ack_frame_size =
- kFirstAckBlockLengthOffset + PACKET_2BYTE_PACKET_NUMBER;
- for (size_t i = kQuicFrameTypeSize; i < ack_frame_size; ++i) {
- string expected_error;
- if (i < kLargestAckedDeltaTimeOffset) {
- expected_error = "Unable to read largest acked.";
- } else if (i < kFirstAckBlockLengthOffset) {
- expected_error = "Unable to read ack delay time.";
- } else if (i < kNumTimestampsOffset) {
- expected_error = "Unable to read first ack block length.";
- } else {
- expected_error = "Unable to read num received packets.";
- }
- CheckProcessingFails(
- packet,
- i + GetPacketHeaderSize(framer_.version(), PACKET_8BYTE_CONNECTION_ID,
- !kIncludeVersion, !kIncludePathId,
- !kIncludeDiversificationNonce,
- PACKET_6BYTE_PACKET_NUMBER),
- expected_error, QUIC_INVALID_ACK_DATA);
- }
-}
-
-TEST_P(QuicFramerTest, NewAckFrameTwoTimeStampsMultipleAckBlocks) {
- // clang-format off
- unsigned char packet[] = {
- // public flags (8 byte connection_id)
- 0x3C,
- // connection_id
- 0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE,
- // packet number
- 0xBC, 0x9A, 0x78, 0x56, 0x34, 0x12,
-
- // frame type (ack frame)
- // (more than one ack block, 2 byte largest observed, 2 byte block length)
- 0x65,
- // largest acked
- 0x34, 0x12,
- // Zero delta time.
- 0x00, 0x00,
- // num ack blocks ranges.
- 0x04,
- // first ack block length.
- 0x01, 0x00,
- // gap to next block.
+ // num ack blocks ranges.
+ 0x04,
+ // first ack block length.
+ 0x01, 0x00,
+ // gap to next block.
0x01,
// ack block length.
0xaf, 0x0e,
@@ -3194,8 +2806,7 @@ TEST_P(QuicFramerTest, AckFrameVersion32) {
};
// clang-format on
- if (framer_.version() <= QUIC_VERSION_31 ||
- framer_.version() > QUIC_VERSION_33) {
+ if (framer_.version() > QUIC_VERSION_33) {
return;
}
@@ -3253,246 +2864,6 @@ TEST_P(QuicFramerTest, AckFrameVersion32) {
}
}
-TEST_P(QuicFramerTest, AckFrameRevivedPackets) {
- // clang-format off
- unsigned char packet[] = {
- // public flags (8 byte connection_id)
- 0x38,
- // connection_id
- 0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE,
- // packet number
- 0xA8, 0x9A, 0x78, 0x56, 0x34, 0x12,
- // private flags (entropy)
- 0x01,
-
- // frame type (ack frame)
- // (has nacks, not truncated, 6 byte largest observed, 1 byte delta)
- 0x6C,
- // entropy hash of all received packets.
- 0xBA,
- // largest observed packet number
- 0xBF, 0x9A, 0x78, 0x56, 0x34, 0x12,
- // Zero delta time.
- 0x00, 0x00,
- // num received packets.
- 0x00,
- // num missing packets
- 0x01,
- // missing packet delta
- 0x01,
- // 0 more missing packets in range.
- 0x00,
- // Number of revived packets.
- 0x01,
- // Revived packet number.
- 0xBE, 0x9A, 0x78, 0x56, 0x34, 0x12,
- // Number of revived packets.
- 0x00,
- };
- // clang-format on
-
- if (framer_.version() > QUIC_VERSION_31) {
- return;
- }
-
- QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
- EXPECT_TRUE(framer_.ProcessPacket(encrypted));
-
- EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
- ASSERT_TRUE(visitor_.header_.get());
- EXPECT_TRUE(CheckDecryption(encrypted, !kIncludeVersion, !kIncludePathId,
- !kIncludeDiversificationNonce));
-
- EXPECT_EQ(0u, visitor_.stream_frames_.size());
- ASSERT_EQ(1u, visitor_.ack_frames_.size());
- const QuicAckFrame& frame = *visitor_.ack_frames_[0];
- EXPECT_EQ(0xBA, frame.entropy_hash);
- EXPECT_EQ(kLargestObserved, frame.largest_observed);
- ASSERT_EQ(1u, frame.packets.NumPacketsSlow());
- EXPECT_EQ(kMissingPacket, frame.packets.Min());
-
- const size_t kReceivedEntropyOffset = kQuicFrameTypeSize;
- const size_t kLargestObservedOffset =
- kReceivedEntropyOffset + kQuicEntropyHashSize;
- const size_t kMissingDeltaTimeOffset =
- kLargestObservedOffset + PACKET_6BYTE_PACKET_NUMBER;
- const size_t kNumTimestampsOffset =
- kMissingDeltaTimeOffset + kQuicDeltaTimeLargestObservedSize;
- const size_t kNumMissingPacketOffset =
- kNumTimestampsOffset + kQuicNumTimestampsSize;
- const size_t kMissingPacketsOffset =
- kNumMissingPacketOffset + kNumberOfNackRangesSize;
- const size_t kMissingPacketsRange =
- kMissingPacketsOffset + PACKET_1BYTE_PACKET_NUMBER;
- const size_t kRevivedPacketsLength =
- kMissingPacketsRange + PACKET_1BYTE_PACKET_NUMBER;
- const size_t kRevivedPacketSequenceNumberLength =
- kRevivedPacketsLength + PACKET_1BYTE_PACKET_NUMBER;
- // Now test framing boundaries.
- const size_t ack_frame_size =
- kRevivedPacketSequenceNumberLength + PACKET_6BYTE_PACKET_NUMBER;
- for (size_t i = kQuicFrameTypeSize; i < ack_frame_size; ++i) {
- string expected_error;
- if (i < kReceivedEntropyOffset) {
- expected_error = "Unable to read least unacked delta.";
- } else if (i < kLargestObservedOffset) {
- expected_error = "Unable to read entropy hash for received packets.";
- } else if (i < kMissingDeltaTimeOffset) {
- expected_error = "Unable to read largest observed.";
- } else if (i < kNumTimestampsOffset) {
- expected_error = "Unable to read ack delay time.";
- } else if (i < kNumMissingPacketOffset) {
- expected_error = "Unable to read num received packets.";
- } else if (i < kMissingPacketsOffset) {
- expected_error = "Unable to read num missing packet ranges.";
- } else if (i < kMissingPacketsRange) {
- expected_error = "Unable to read missing packet number delta.";
- } else if (i < kRevivedPacketsLength) {
- expected_error = "Unable to read missing packet number range.";
- } else if (i < kRevivedPacketSequenceNumberLength) {
- expected_error = "Unable to read num revived packets.";
- } else {
- expected_error = "Unable to read revived packet.";
- }
- CheckProcessingFails(
- packet,
- i + GetPacketHeaderSize(framer_.version(), PACKET_8BYTE_CONNECTION_ID,
- !kIncludeVersion, !kIncludePathId,
- !kIncludeDiversificationNonce,
- PACKET_6BYTE_PACKET_NUMBER),
- expected_error, QUIC_INVALID_ACK_DATA);
- }
-}
-
-TEST_P(QuicFramerTest, AckFrameNoNacks) {
- // clang-format off
- unsigned char packet[] = {
- // public flags (8 byte connection_id)
- static_cast<unsigned char>(
- framer_.version() > QUIC_VERSION_32 ? 0x38 : 0x3C),
- // connection_id
- 0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE,
- // packet number
- 0xA8, 0x9A, 0x78, 0x56, 0x34, 0x12,
- // private flags (entropy)
- 0x01,
-
- // frame type (ack frame)
- // (no nacks, not truncated, 6 byte largest observed, 1 byte delta)
- 0x4C,
- // entropy hash of all received packets.
- 0xBA,
- // largest observed packet number
- 0xBF, 0x9A, 0x78, 0x56, 0x34, 0x12,
- // Zero delta time.
- 0x00, 0x00,
- // Number of received packets.
- 0x00,
- };
- // clang-format on
- if (framer_.version() >= QUIC_VERSION_31) {
- return;
- }
-
- QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
- EXPECT_TRUE(framer_.ProcessPacket(encrypted));
-
- EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
- ASSERT_TRUE(visitor_.header_.get());
- EXPECT_TRUE(CheckDecryption(encrypted, !kIncludeVersion, !kIncludePathId,
- !kIncludeDiversificationNonce));
-
- EXPECT_EQ(0u, visitor_.stream_frames_.size());
- ASSERT_EQ(1u, visitor_.ack_frames_.size());
- QuicAckFrame* frame = visitor_.ack_frames_[0];
- EXPECT_EQ(0xBA, frame->entropy_hash);
- EXPECT_EQ(kLargestObserved, frame->largest_observed);
- ASSERT_TRUE(frame->packets.Empty());
-
- // Verify that the packet re-serializes identically.
- QuicFrames frames;
- frames.push_back(QuicFrame(frame));
- std::unique_ptr<QuicPacket> data(BuildDataPacket(*visitor_.header_, frames));
- ASSERT_TRUE(data != nullptr);
-
- test::CompareCharArraysWithHexError("constructed packet", data->data(),
- data->length(), AsChars(packet),
- arraysize(packet));
-}
-
-TEST_P(QuicFramerTest, AckFrame500Nacks) {
- // clang-format off
- unsigned char packet[] = {
- // public flags (8 byte connection_id)
- static_cast<unsigned char>(
- framer_.version() > QUIC_VERSION_32 ? 0x38 : 0x3C),
- // connection_id
- 0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE,
- // packet number
- 0xA8, 0x9A, 0x78, 0x56, 0x34, 0x12,
- // private flags (entropy)
- 0x01,
-
- // frame type (ack frame)
- // (has nacks, not truncated, 6 byte largest observed, 1 byte delta)
- 0x6C,
- // entropy hash of all received packets.
- 0xBA,
- // largest observed packet number
- 0xBF, 0x9A, 0x78, 0x56, 0x34, 0x12,
- // Zero delta time.
- 0x00, 0x00,
- // No received packets.
- 0x00,
- // num missing packet ranges
- 0x02,
- // missing packet delta
- 0x01,
- // 243 more missing packets in range.
- // The ranges are listed in this order so the re-constructed packet
- // matches.
- 0xF3,
- // No gap between ranges
- 0x00,
- // 255 more missing packets in range.
- 0xFF,
- // No revived packets.
- 0x00,
- };
- // clang-format on
-
- if (framer_.version() > QUIC_VERSION_31) {
- return;
- }
-
- QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
- EXPECT_TRUE(framer_.ProcessPacket(encrypted));
-
- EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
- ASSERT_TRUE(visitor_.header_.get());
- EXPECT_TRUE(CheckDecryption(encrypted, !kIncludeVersion, !kIncludePathId,
- !kIncludeDiversificationNonce));
-
- EXPECT_EQ(0u, visitor_.stream_frames_.size());
- ASSERT_EQ(1u, visitor_.ack_frames_.size());
- QuicAckFrame* frame = visitor_.ack_frames_[0];
- EXPECT_EQ(0xBA, frame->entropy_hash);
- EXPECT_EQ(kLargestObserved, frame->largest_observed);
- ASSERT_EQ(500u, frame->packets.NumPacketsSlow());
- EXPECT_EQ(kMissingPacket - 499, frame->packets.Min());
- EXPECT_EQ(kMissingPacket, frame->packets.Max());
-
- // Verify that the packet re-serializes identically.
- QuicFrames frames;
- frames.push_back(QuicFrame(frame));
- std::unique_ptr<QuicPacket> data(BuildDataPacket(*visitor_.header_, frames));
- ASSERT_TRUE(data != nullptr);
-
- test::CompareCharArraysWithHexError("constructed packet", data->data(),
- data->length(), AsChars(packet),
- arraysize(packet));
-}
-
TEST_P(QuicFramerTest, AckFrame500NacksVersion32) {
// clang-format off
unsigned char packet[] = {
@@ -3532,8 +2903,7 @@ TEST_P(QuicFramerTest, AckFrame500NacksVersion32) {
};
// clang-format on
- if (framer_.version() <= QUIC_VERSION_31 ||
- framer_.version() > QUIC_VERSION_33) {
+ if (framer_.version() > QUIC_VERSION_33) {
return;
}
@@ -4489,64 +3859,28 @@ TEST_P(QuicFramerTest, OldVersionNegotiationPacket) {
};
// clang-format on
- QuicFramerPeer::SetPerspective(&framer_, Perspective::IS_CLIENT);
-
- QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
- EXPECT_TRUE(framer_.ProcessPacket(encrypted));
- ASSERT_EQ(QUIC_NO_ERROR, framer_.error());
- ASSERT_TRUE(visitor_.version_negotiation_packet_.get());
- EXPECT_EQ(2u, visitor_.version_negotiation_packet_->versions.size());
- EXPECT_EQ(GetParam(), visitor_.version_negotiation_packet_->versions[0]);
-
- for (size_t i = 0; i <= kPublicFlagsSize + PACKET_8BYTE_CONNECTION_ID; ++i) {
- string expected_error;
- QuicErrorCode error_code = QUIC_INVALID_PACKET_HEADER;
- if (i < kConnectionIdOffset) {
- expected_error = "Unable to read public flags.";
- } else if (i < kVersionOffset) {
- expected_error = "Unable to read ConnectionId.";
- } else {
- expected_error = "Unable to read supported version in negotiation.";
- error_code = QUIC_INVALID_VERSION_NEGOTIATION_PACKET;
- }
- CheckProcessingFails(packet, i, expected_error, error_code);
- }
-}
-
-TEST_P(QuicFramerTest, DropFecPacket) {
- // clang-format off
- unsigned char packet[] = {
- // public flags (8 byte connection_id)
- 0x38,
- // connection_id
- 0x10, 0x32, 0x54, 0x76,
- 0x98, 0xBA, 0xDC, 0xFE,
- // packet number
- 0xBC, 0x9A, 0x78, 0x56,
- 0x34, 0x12,
- // private flags (fec group & FEC)
- 0x06,
- // first fec protected packet offset
- 0x01,
-
- // redundancy
- 'a', 'b', 'c', 'd',
- 'e', 'f', 'g', 'h',
- 'i', 'j', 'k', 'l',
- 'm', 'n', 'o', 'p',
- };
- if (framer_.version() > QUIC_VERSION_33) {
- return;
- }
- QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
- if (framer_.version() <= QUIC_VERSION_31) {
- EXPECT_TRUE(framer_.ProcessPacket(encrypted));
- EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
- } else {
- EXPECT_FALSE(framer_.ProcessPacket(encrypted));
- EXPECT_EQ(QUIC_INVALID_PACKET_HEADER, framer_.error());
+ QuicFramerPeer::SetPerspective(&framer_, Perspective::IS_CLIENT);
+
+ QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
+ EXPECT_TRUE(framer_.ProcessPacket(encrypted));
+ ASSERT_EQ(QUIC_NO_ERROR, framer_.error());
+ ASSERT_TRUE(visitor_.version_negotiation_packet_.get());
+ EXPECT_EQ(2u, visitor_.version_negotiation_packet_->versions.size());
+ EXPECT_EQ(GetParam(), visitor_.version_negotiation_packet_->versions[0]);
+
+ for (size_t i = 0; i <= kPublicFlagsSize + PACKET_8BYTE_CONNECTION_ID; ++i) {
+ string expected_error;
+ QuicErrorCode error_code = QUIC_INVALID_PACKET_HEADER;
+ if (i < kConnectionIdOffset) {
+ expected_error = "Unable to read public flags.";
+ } else if (i < kVersionOffset) {
+ expected_error = "Unable to read ConnectionId.";
+ } else {
+ expected_error = "Unable to read supported version in negotiation.";
+ error_code = QUIC_INVALID_VERSION_NEGOTIATION_PACKET;
+ }
+ CheckProcessingFails(packet, i, expected_error, error_code);
}
- EXPECT_FALSE(visitor_.header_.get());
}
TEST_P(QuicFramerTest, BuildPaddingFramePacket) {
@@ -4554,7 +3888,6 @@ TEST_P(QuicFramerTest, BuildPaddingFramePacket) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = false;
header.packet_number = kPacketNumber;
@@ -4620,7 +3953,6 @@ TEST_P(QuicFramerTest, Build4ByteSequenceNumberPaddingFramePacket) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = false;
header.public_header.packet_number_length = PACKET_4BYTE_PACKET_NUMBER;
header.packet_number = kPacketNumber;
@@ -4685,7 +4017,6 @@ TEST_P(QuicFramerTest, Build2ByteSequenceNumberPaddingFramePacket) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = false;
header.public_header.packet_number_length = PACKET_2BYTE_PACKET_NUMBER;
header.packet_number = kPacketNumber;
@@ -4750,7 +4081,6 @@ TEST_P(QuicFramerTest, Build1ByteSequenceNumberPaddingFramePacket) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = false;
header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER;
header.packet_number = kPacketNumber;
@@ -4815,7 +4145,6 @@ TEST_P(QuicFramerTest, BuildStreamFramePacket) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = true;
header.packet_number = kPacketNumber;
@@ -4890,7 +4219,6 @@ TEST_P(QuicFramerTest, BuildStreamFramePacketWithVersionFlag) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = true;
- header.fec_flag = false;
header.entropy_flag = true;
header.packet_number = kPacketNumber;
@@ -4961,7 +4289,6 @@ TEST_P(QuicFramerTest, BuildStreamFramePacketWithMultipathFlag) {
header.public_header.multipath_flag = true;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = true;
header.path_id = kPathId;
header.packet_number = kPacketNumber;
@@ -5042,7 +4369,6 @@ TEST_P(QuicFramerTest, BuildStreamFramePacketWithBothVersionAndMultipathFlag) {
header.public_header.multipath_flag = true;
header.public_header.reset_flag = false;
header.public_header.version_flag = true;
- header.fec_flag = false;
header.entropy_flag = true;
header.path_id = kPathId;
header.packet_number = kPacketNumber;
@@ -5152,7 +4478,6 @@ TEST_P(QuicFramerTest, BuildAckFramePacket) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = true;
header.packet_number = kPacketNumber;
@@ -5168,39 +4493,6 @@ TEST_P(QuicFramerTest, BuildAckFramePacket) {
// clang-format off
unsigned char packet[] = {
// public flags (8 byte connection_id)
- 0x3C,
- // connection_id
- 0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE,
- // packet number
- 0xBC, 0x9A, 0x78, 0x56, 0x34, 0x12,
- // private flags (entropy)
- 0x01,
-
- // frame type (ack frame)
- // (has nacks, not truncated, 6 byte largest observed, 1 byte delta)
- 0x6C,
- // entropy hash of all received packets.
- 0x43,
- // largest observed packet number
- 0xBF, 0x9A, 0x78, 0x56, 0x34, 0x12,
- // Zero delta time.
- 0x00, 0x00,
- // num received packets.
- 0x00,
- // num missing packet ranges
- 0x01,
- // missing packet delta
- 0x01,
- // 0 more missing packets in range.
- 0x00,
- // 0 revived packets.
- 0x00,
- };
- // clang-format on
-
- // clang-format off
- unsigned char packet_version32[] = {
- // public flags (8 byte connection_id)
static_cast<unsigned char>(
framer_.version() > QUIC_VERSION_32 ? 0x38 : 0x3C),
// connection_id
@@ -5233,15 +4525,9 @@ TEST_P(QuicFramerTest, BuildAckFramePacket) {
std::unique_ptr<QuicPacket> data(BuildDataPacket(header, frames));
ASSERT_TRUE(data != nullptr);
- if (framer_.version() <= QUIC_VERSION_31) {
- test::CompareCharArraysWithHexError("constructed packet", data->data(),
- data->length(), AsChars(packet),
- arraysize(packet));
- } else {
- test::CompareCharArraysWithHexError(
- "constructed packet", data->data(), data->length(),
- AsChars(packet_version32), arraysize(packet_version32));
- }
+ test::CompareCharArraysWithHexError("constructed packet", data->data(),
+ data->length(), AsChars(packet),
+ arraysize(packet));
}
// TODO(jri): Add test for tuncated packets in which the original ack frame had
@@ -5256,7 +4542,6 @@ TEST_P(QuicFramerTest, BuildTruncatedAckFrameLargePacket) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = true;
header.packet_number = kPacketNumber;
@@ -5277,85 +4562,6 @@ TEST_P(QuicFramerTest, BuildTruncatedAckFrameLargePacket) {
// clang-format off
unsigned char packet[] = {
// public flags (8 byte connection_id)
- 0x3C,
- // connection_id
- 0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE,
- // packet number
- 0xBC, 0x9A, 0x78, 0x56, 0x34, 0x12,
- // private flags (entropy)
- 0x01,
-
- // frame type (ack frame)
- // (has nacks, is truncated, 2 byte largest observed, 1 byte delta)
- 0x74,
- // entropy hash of all received packets, set to 1 by TestEntropyCalculator
- // since ack is truncated.
- 0x01,
- // 2-byte largest observed packet number.
- // Expected to be 510 (0x1FE), since only 255 nack ranges can fit.
- 0xFE, 0x01,
- // Zero delta time.
- 0x00, 0x00,
- // num missing packet ranges (limited to 255 by size of this field).
- 0xFF,
- // {missing packet delta, further missing packets in range}
- // 6 nack ranges x 42 + 3 nack ranges
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
-
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
-
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
-
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
-
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
-
- // 0 revived packets.
- 0x00,
- };
- // clang-format on
-
- // clang-format off
- unsigned char packet_version32[] = {
- // public flags (8 byte connection_id)
static_cast<unsigned char>(
framer_.version() > QUIC_VERSION_32 ? 0x38 : 0x3C),
// connection_id
@@ -5433,15 +4639,9 @@ TEST_P(QuicFramerTest, BuildTruncatedAckFrameLargePacket) {
std::unique_ptr<QuicPacket> data(BuildDataPacket(header, frames));
ASSERT_TRUE(data != nullptr);
- if (framer_.version() <= QUIC_VERSION_31) {
- test::CompareCharArraysWithHexError("constructed packet", data->data(),
- data->length(), AsChars(packet),
- arraysize(packet));
- } else {
- test::CompareCharArraysWithHexError(
- "constructed packet", data->data(), data->length(),
- AsChars(packet_version32), arraysize(packet_version32));
- }
+ test::CompareCharArraysWithHexError("constructed packet", data->data(),
+ data->length(), AsChars(packet),
+ arraysize(packet));
}
TEST_P(QuicFramerTest, BuildTruncatedAckFrameSmallPacket) {
@@ -5453,7 +4653,6 @@ TEST_P(QuicFramerTest, BuildTruncatedAckFrameSmallPacket) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = true;
header.packet_number = kPacketNumber;
@@ -5474,38 +4673,6 @@ TEST_P(QuicFramerTest, BuildTruncatedAckFrameSmallPacket) {
// clang-format off
unsigned char packet[] = {
// public flags (8 byte connection_id)
- 0x3C,
- // connection_id
- 0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE,
- // packet number
- 0xBC, 0x9A, 0x78, 0x56, 0x34, 0x12,
- // private flags (entropy)
- 0x01,
-
- // frame type (ack frame)
- // (has nacks, is truncated, 2 byte largest observed, 1 byte delta)
- 0x74,
- // entropy hash of all received packets, set to 1 by TestEntropyCalculator
- // since ack is truncated.
- 0x01,
- // 2-byte largest observed packet number.
- // Expected to be 12 (0x0C), since only 6 nack ranges can fit.
- 0x0C, 0x00,
- // Zero delta time.
- 0x00, 0x00,
- // num missing packet ranges (limited to 6 by packet size of 37).
- 0x06,
- // {missing packet delta, further missing packets in range}
- // 6 nack ranges
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- // 0 revived packets.
- 0x00,
- };
- // clang-format on
-
- // clang-format off
- unsigned char packet_version32[] = {
- // public flags (8 byte connection_id)
static_cast<unsigned char>(
framer_.version() > QUIC_VERSION_32 ? 0x38 : 0x3C),
// connection_id
@@ -5534,23 +4701,13 @@ TEST_P(QuicFramerTest, BuildTruncatedAckFrameSmallPacket) {
};
// clang-format on
- if (framer_.version() <= QUIC_VERSION_31) {
- std::unique_ptr<QuicPacket> data(BuildDataPacket(header, frames, 37u));
- ASSERT_TRUE(data != nullptr);
- // Expect 1 byte unused since at least 2 bytes are needed to fit more nacks.
- EXPECT_EQ(36u, data->length());
- test::CompareCharArraysWithHexError("constructed packet", data->data(),
- data->length(), AsChars(packet),
- arraysize(packet));
- } else {
- std::unique_ptr<QuicPacket> data(BuildDataPacket(header, frames, 36u));
- ASSERT_TRUE(data != nullptr);
- // Expect 1 byte unused since at least 2 bytes are needed to fit more nacks.
- EXPECT_EQ(35u, data->length());
- test::CompareCharArraysWithHexError(
- "constructed packet", data->data(), data->length(),
- AsChars(packet_version32), arraysize(packet_version32));
- }
+ std::unique_ptr<QuicPacket> data(BuildDataPacket(header, frames, 36u));
+ ASSERT_TRUE(data != nullptr);
+ // Expect 1 byte unused since at least 2 bytes are needed to fit more nacks.
+ EXPECT_EQ(35u, data->length());
+ test::CompareCharArraysWithHexError("constructed packet", data->data(),
+ data->length(), AsChars(packet),
+ arraysize(packet));
}
TEST_P(QuicFramerTest, BuildNewAckFramePacketOneAckBlock) {
@@ -5813,7 +4970,6 @@ TEST_P(QuicFramerTest, BuildStopWaitingPacket) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = true;
header.packet_number = kPacketNumber;
@@ -5863,7 +5019,6 @@ TEST_P(QuicFramerTest, BuildNewStopWaitingPacket) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = false;
header.packet_number = kPacketNumber;
@@ -5904,7 +5059,6 @@ TEST_P(QuicFramerTest, BuildRstFramePacketQuic) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = false;
header.packet_number = kPacketNumber;
@@ -5977,7 +5131,6 @@ TEST_P(QuicFramerTest, BuildCloseFramePacket) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = true;
header.packet_number = kPacketNumber;
@@ -6054,7 +5207,6 @@ TEST_P(QuicFramerTest, BuildGoAwayPacket) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = true;
header.packet_number = kPacketNumber;
@@ -6135,7 +5287,6 @@ TEST_P(QuicFramerTest, BuildWindowUpdatePacket) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = true;
header.packet_number = kPacketNumber;
@@ -6203,7 +5354,6 @@ TEST_P(QuicFramerTest, BuildBlockedPacket) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = true;
header.packet_number = kPacketNumber;
@@ -6264,7 +5414,6 @@ TEST_P(QuicFramerTest, BuildPingPacket) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = true;
header.packet_number = kPacketNumber;
@@ -6322,7 +5471,6 @@ TEST_P(QuicFramerTest, BuildPathClosePacket) {
header.public_header.multipath_flag = true;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = true;
header.path_id = kDefaultPathId;
header.packet_number = kPacketNumber;
@@ -6385,7 +5533,6 @@ TEST_P(QuicFramerTest, BuildMtuDiscoveryPacket) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = true;
header.packet_number = kPacketNumber;
@@ -6472,15 +5619,39 @@ TEST_P(QuicFramerTest, BuildPublicResetPacketOld) {
0xBC, 0x9A, 0x78, 0x56,
0x34, 0x12, 0x00, 0x00,
};
+ unsigned char packet_no_rejected_packet_number[] = {
+ // public flags (public reset, 8 byte ConnectionId)
+ 0x0E,
+ // connection_id
+ 0x10, 0x32, 0x54, 0x76,
+ 0x98, 0xBA, 0xDC, 0xFE,
+ // message tag (kPRST)
+ 'P', 'R', 'S', 'T',
+ // num_entries (1) + padding
+ 0x01, 0x00, 0x00, 0x00,
+ // tag kRNON
+ 'R', 'N', 'O', 'N',
+ // end offset 8
+ 0x08, 0x00, 0x00, 0x00,
+ // nonce proof
+ 0x89, 0x67, 0x45, 0x23,
+ 0x01, 0xEF, 0xCD, 0xAB,
+ };
// clang-format on
std::unique_ptr<QuicEncryptedPacket> data(
framer_.BuildPublicResetPacket(reset_packet));
ASSERT_TRUE(data != nullptr);
-
- test::CompareCharArraysWithHexError("constructed packet", data->data(),
- data->length(), AsChars(packet),
- arraysize(packet));
+ if (FLAGS_quic_remove_packet_number_from_public_reset) {
+ test::CompareCharArraysWithHexError(
+ "constructed packet", data->data(), data->length(),
+ AsChars(packet_no_rejected_packet_number),
+ arraysize(packet_no_rejected_packet_number));
+ } else {
+ test::CompareCharArraysWithHexError("constructed packet", data->data(),
+ data->length(), AsChars(packet),
+ arraysize(packet));
+ }
}
TEST_P(QuicFramerTest, BuildPublicResetPacket) {
@@ -6518,15 +5689,40 @@ TEST_P(QuicFramerTest, BuildPublicResetPacket) {
0xBC, 0x9A, 0x78, 0x56,
0x34, 0x12, 0x00, 0x00,
};
+ unsigned char packet_no_rejected_packet_number[] = {
+ // public flags (public reset, 8 byte ConnectionId)
+ 0x0A,
+ // connection_id
+ 0x10, 0x32, 0x54, 0x76,
+ 0x98, 0xBA, 0xDC, 0xFE,
+ // message tag (kPRST)
+ 'P', 'R', 'S', 'T',
+ // num_entries (1) + padding
+ 0x01, 0x00, 0x00, 0x00,
+ // tag kRNON
+ 'R', 'N', 'O', 'N',
+ // end offset 8
+ 0x08, 0x00, 0x00, 0x00,
+ // nonce proof
+ 0x89, 0x67, 0x45, 0x23,
+ 0x01, 0xEF, 0xCD, 0xAB,
+ };
// clang-format on
std::unique_ptr<QuicEncryptedPacket> data(
framer_.BuildPublicResetPacket(reset_packet));
ASSERT_TRUE(data != nullptr);
- test::CompareCharArraysWithHexError("constructed packet", data->data(),
- data->length(), AsChars(packet),
- arraysize(packet));
+ if (FLAGS_quic_remove_packet_number_from_public_reset) {
+ test::CompareCharArraysWithHexError(
+ "constructed packet", data->data(), data->length(),
+ AsChars(packet_no_rejected_packet_number),
+ arraysize(packet_no_rejected_packet_number));
+ } else {
+ test::CompareCharArraysWithHexError("constructed packet", data->data(),
+ data->length(), AsChars(packet),
+ arraysize(packet));
+ }
}
TEST_P(QuicFramerTest, BuildPublicResetPacketWithClientAddress) {
@@ -6573,15 +5769,48 @@ TEST_P(QuicFramerTest, BuildPublicResetPacketWithClientAddress) {
0x7F, 0x00, 0x00, 0x01,
0x34, 0x12,
};
+ unsigned char packet_no_rejected_packet_number[] = {
+ // public flags (public reset, 8 byte ConnectionId)
+ 0x0A,
+ // connection_id
+ 0x10, 0x32, 0x54, 0x76,
+ 0x98, 0xBA, 0xDC, 0xFE,
+ // message tag (kPRST)
+ 'P', 'R', 'S', 'T',
+ // num_entries (2) + padding
+ 0x02, 0x00, 0x00, 0x00,
+ // tag kRNON
+ 'R', 'N', 'O', 'N',
+ // end offset 8
+ 0x08, 0x00, 0x00, 0x00,
+ // tag kCADR
+ 'C', 'A', 'D', 'R',
+ // end offset 16
+ 0x10, 0x00, 0x00, 0x00,
+ // nonce proof
+ 0x89, 0x67, 0x45, 0x23,
+ 0x01, 0xEF, 0xCD, 0xAB,
+ // client address
+ 0x02, 0x00,
+ 0x7F, 0x00, 0x00, 0x01,
+ 0x34, 0x12,
+ };
// clang-format on
std::unique_ptr<QuicEncryptedPacket> data(
framer_.BuildPublicResetPacket(reset_packet));
ASSERT_TRUE(data != nullptr);
- test::CompareCharArraysWithHexError("constructed packet", data->data(),
- data->length(), AsChars(packet),
- arraysize(packet));
+ if (FLAGS_quic_remove_packet_number_from_public_reset) {
+ test::CompareCharArraysWithHexError(
+ "constructed packet", data->data(), data->length(),
+ AsChars(packet_no_rejected_packet_number),
+ arraysize(packet_no_rejected_packet_number));
+ } else {
+ test::CompareCharArraysWithHexError("constructed packet", data->data(),
+ data->length(), AsChars(packet),
+ arraysize(packet));
+ }
}
TEST_P(QuicFramerTest, EncryptPacket) {
@@ -6821,7 +6050,6 @@ TEST_P(QuicFramerTest, AckTruncationLargePacket) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = false;
header.packet_number = kPacketNumber;
@@ -6873,7 +6101,6 @@ TEST_P(QuicFramerTest, AckTruncationSmallPacket) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = false;
header.packet_number = kPacketNumber;
@@ -6926,7 +6153,6 @@ TEST_P(QuicFramerTest, CleanTruncation) {
header.public_header.connection_id = kConnectionId;
header.public_header.reset_flag = false;
header.public_header.version_flag = false;
- header.fec_flag = false;
header.entropy_flag = true;
header.packet_number = kPacketNumber;
@@ -7006,7 +6232,6 @@ TEST_P(QuicFramerTest, EntropyFlagTest) {
ASSERT_TRUE(visitor_.header_.get());
EXPECT_TRUE(visitor_.header_->entropy_flag);
EXPECT_EQ(1 << 4, visitor_.header_->entropy_hash);
- EXPECT_FALSE(visitor_.header_->fec_flag);
};
TEST_P(QuicFramerTest, StopPacketProcessing) {
« no previous file with comments | « net/quic/core/quic_framer.cc ('k') | net/quic/core/quic_packet_creator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698