Index: net/quic/quic_sent_entropy_manager_test.cc |
diff --git a/net/quic/quic_sent_entropy_manager_test.cc b/net/quic/quic_sent_entropy_manager_test.cc |
index e4e9847b516dc62bb8796aa0828343b12d3f1f43..3648bf3b7495c2775505474134ecaa0ba6f4ae53 100644 |
--- a/net/quic/quic_sent_entropy_manager_test.cc |
+++ b/net/quic/quic_sent_entropy_manager_test.cc |
@@ -68,6 +68,38 @@ TEST_F(QuicSentEntropyManagerTest, IsValidEntropy) { |
entropy_hash)); |
} |
+TEST_F(QuicSentEntropyManagerTest, ClearEntropiesBefore) { |
+ QuicPacketEntropyHash entropies[10] = |
+ {12, 1, 33, 3, 32, 100, 28, 42, 22, 255}; |
+ |
+ for (size_t i = 0; i < 10; ++i) { |
+ entropy_manager_.RecordPacketEntropyHash(i + 1, entropies[i]); |
+ } |
+ |
+ // Discard the first 5 entropies and ensure IsValidEntropy and EntropyHash |
+ // still return correct results. |
+ entropy_manager_.ClearEntropyBefore(5); |
+ |
+ SequenceNumberSet missing_packets; |
+ missing_packets.insert(7); |
+ missing_packets.insert(8); |
+ |
+ QuicPacketEntropyHash entropy_hash = 0; |
+ for (size_t i = 0; i < 10; ++i) { |
+ if (missing_packets.find(i + 1) == missing_packets.end()) { |
+ entropy_hash ^= entropies[i]; |
+ } |
+ } |
+ EXPECT_TRUE(entropy_manager_.IsValidEntropy(10, missing_packets, |
+ entropy_hash)); |
+ |
+ entropy_hash = 0; |
+ for (size_t i = 0; i < 10; ++i) { |
+ entropy_hash ^= entropies[i]; |
+ } |
+ EXPECT_EQ(entropy_hash, entropy_manager_.EntropyHash(10)); |
+} |
+ |
} // namespace |
} // namespace test |
} // namespace net |