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

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

Issue 2401363004: relnote: Deprecate flag quic_disable_pre_32 (Closed)
Patch Set: remove unused LoadTestCert method 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_protocol.h » ('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..6cd6252016941683637f96d513a1e9a0f1d36694 100644
--- a/net/quic/core/quic_framer_test.cc
+++ b/net/quic/core/quic_framer_test.cc
@@ -1704,16 +1704,10 @@ TEST_P(QuicFramerTest, InvalidFECGroupOffset) {
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);
- }
+ CheckProcessingFails(packet, arraysize(packet),
+ "Illegal private flags value.",
+ QUIC_INVALID_PACKET_HEADER);
+
};
TEST_P(QuicFramerTest, PaddingFrame) {
@@ -2376,133 +2370,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 +2410,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 +2486,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 +2519,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 +2557,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 +2575,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 +2588,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 +2596,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 +2627,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 +2662,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,213 +2670,38 @@ 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
+ // num ack blocks ranges.
+ 0x04,
+ // first ack block length.
+ 0x01, 0x00,
+ // gap to next block.
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.
- 0x01,
- // ack block length.
- 0xaf, 0x0e,
- // gap to next block.
- 0xff,
- // ack block length.
- 0x00, 0x00,
- // gap to next block.
- 0x91,
- // ack block length.
- 0xea, 0x01,
- // gap to next block.
- 0x05,
- // ack block length.
- 0x04, 0x00,
- // Number of timestamps.
- 0x02,
- // Delta from largest observed.
+ // ack block length.
+ 0xaf, 0x0e,
+ // gap to next block.
+ 0xff,
+ // ack block length.
+ 0x00, 0x00,
+ // gap to next block.
+ 0x91,
+ // ack block length.
+ 0xea, 0x01,
+ // gap to next block.
+ 0x05,
+ // ack block length.
+ 0x04, 0x00,
+ // Number of timestamps.
+ 0x02,
+ // Delta from largest observed.
0x01,
// Delta time.
0x10, 0x32, 0x54, 0x76,
@@ -3140,292 +2791,33 @@ TEST_P(QuicFramerTest, NewAckFrameTwoTimeStampsMultipleAckBlocks) {
} else if (i < kNumTimestampsOffset) {
expected_error = "Unable to ack block length.";
} 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 {
- expected_error =
- "Unable to read incremental time delta in 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, AckFrameVersion32) {
- // 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.
- 0x00,
- // num missing packets
- 0x01,
- // missing packet delta
- 0x01,
- // 0 more missing packets in range.
- 0x00,
- };
- // clang-format on
-
- if (framer_.version() <= QUIC_VERSION_31 ||
- 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(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;
- // Now test framing boundaries.
- 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) {
- 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 {
- expected_error = "Unable to read missing packet number delta.";
- }
- 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, 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);
+ 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 {
+ expected_error =
+ "Unable to read incremental time delta in received packets.";
+ }
- test::CompareCharArraysWithHexError("constructed packet", data->data(),
- data->length(), AsChars(packet),
- arraysize(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, AckFrame500Nacks) {
+TEST_P(QuicFramerTest, AckFrameVersion32) {
// clang-format off
unsigned char packet[] = {
// public flags (8 byte connection_id)
- static_cast<unsigned char>(
- framer_.version() > QUIC_VERSION_32 ? 0x38 : 0x3C),
+ 0x38,
// connection_id
0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE,
// packet number
@@ -3442,26 +2834,18 @@ TEST_P(QuicFramerTest, AckFrame500Nacks) {
0xBF, 0x9A, 0x78, 0x56, 0x34, 0x12,
// Zero delta time.
0x00, 0x00,
- // No received packets.
+ // Number of timestamps.
0x00,
- // num missing packet ranges
- 0x02,
+ // num missing packets
+ 0x01,
// 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.
+ // 0 more missing packets in range.
0x00,
};
// clang-format on
- if (framer_.version() > QUIC_VERSION_31) {
+ if (framer_.version() > QUIC_VERSION_33) {
return;
}
@@ -3475,22 +2859,48 @@ TEST_P(QuicFramerTest, AckFrame500Nacks) {
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);
+ 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());
- test::CompareCharArraysWithHexError("constructed packet", data->data(),
- data->length(), AsChars(packet),
- arraysize(packet));
+ 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;
+ // Now test framing boundaries.
+ 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) {
+ 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 {
+ expected_error = "Unable to read missing packet number delta.";
+ }
+ 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, AckFrame500NacksVersion32) {
@@ -3532,8 +2942,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;
}
@@ -4539,13 +3948,8 @@ TEST_P(QuicFramerTest, DropFecPacket) {
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());
- }
+ EXPECT_FALSE(framer_.ProcessPacket(encrypted));
+ EXPECT_EQ(QUIC_INVALID_PACKET_HEADER, framer_.error());
EXPECT_FALSE(visitor_.header_.get());
}
@@ -5168,39 +4572,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 +4604,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
@@ -5277,85 +4642,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 +4719,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) {
@@ -5474,38 +4754,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 +4782,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) {
« no previous file with comments | « net/quic/core/quic_framer.cc ('k') | net/quic/core/quic_protocol.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698