gfe-relnote: In QUIC bandwidth sampler, only remove packets when RemoveObsoletePackets is called. Protected by --gfe2_reloadable_flag_quic_bw_sampler_remove_packets_once_per_congestion_event.
PiperOrigin-RevId: 285110271
Change-Id: I27567839a190136c03fef54a66261ab34d8c1f82
diff --git a/quic/core/packet_number_indexed_queue_test.cc b/quic/core/packet_number_indexed_queue_test.cc
index c293133..e23df99 100644
--- a/quic/core/packet_number_indexed_queue_test.cc
+++ b/quic/core/packet_number_indexed_queue_test.cc
@@ -8,6 +8,7 @@
#include <map>
#include <string>
+#include "net/third_party/quiche/src/quic/core/quic_packet_number.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_test.h"
namespace quic {
@@ -167,6 +168,29 @@
ASSERT_FALSE(queue_.Remove(QuicPacketNumber(1001)));
}
+TEST_F(PacketNumberIndexedQueueTest, RemoveUpTo) {
+ queue_.Emplace(QuicPacketNumber(1001), "one");
+ queue_.Emplace(QuicPacketNumber(2001), "two");
+ EXPECT_EQ(QuicPacketNumber(1001u), queue_.first_packet());
+ EXPECT_EQ(2u, queue_.number_of_present_entries());
+
+ queue_.RemoveUpTo(QuicPacketNumber(1001));
+ EXPECT_EQ(QuicPacketNumber(1001u), queue_.first_packet());
+ EXPECT_EQ(2u, queue_.number_of_present_entries());
+
+ queue_.RemoveUpTo(QuicPacketNumber(1100));
+ EXPECT_EQ(QuicPacketNumber(1100u), queue_.first_packet());
+ EXPECT_EQ(1u, queue_.number_of_present_entries());
+
+ queue_.RemoveUpTo(QuicPacketNumber(2001));
+ EXPECT_EQ(QuicPacketNumber(2001u), queue_.first_packet());
+ EXPECT_EQ(1u, queue_.number_of_present_entries());
+
+ queue_.RemoveUpTo(QuicPacketNumber(2002));
+ EXPECT_FALSE(queue_.first_packet().IsInitialized());
+ EXPECT_EQ(0u, queue_.number_of_present_entries());
+}
+
TEST_F(PacketNumberIndexedQueueTest, ConstGetter) {
queue_.Emplace(QuicPacketNumber(1001), "one");
const auto& const_queue = queue_;