gfe-relnote: In QUIC, truncate IETF ACK ranges if ACK frame does not fit. Protected by existing gfe2_reloadable_flag_quic_enable_version_draft_25_v3.

Also rewrote GetIetfAckFrameSize andAppendIetfAckFrameAndTypeByte.

PiperOrigin-RevId: 299906874
Change-Id: Ib670d89b35c6f35aa7a346027b3604c81c5389e7
diff --git a/quic/test_tools/quic_test_utils.cc b/quic/test_tools/quic_test_utils.cc
index bfbf512..aade80b 100644
--- a/quic/test_tools/quic_test_utils.cc
+++ b/quic/test_tools/quic_test_utils.cc
@@ -111,6 +111,22 @@
   return ack;
 }
 
+QuicAckFrame MakeAckFrameWithGaps(uint64_t gap_size,
+                                  size_t max_num_gaps,
+                                  uint64_t largest_acked) {
+  QuicAckFrame ack;
+  ack.largest_acked = QuicPacketNumber(largest_acked);
+  ack.packets.Add(QuicPacketNumber(largest_acked));
+  for (size_t i = 0; i < max_num_gaps; ++i) {
+    if (largest_acked <= gap_size) {
+      break;
+    }
+    largest_acked -= gap_size;
+    ack.packets.Add(QuicPacketNumber(largest_acked));
+  }
+  return ack;
+}
+
 EncryptionLevel HeaderToEncryptionLevel(const QuicPacketHeader& header) {
   if (header.form == IETF_QUIC_SHORT_HEADER_PACKET) {
     return ENCRYPTION_FORWARD_SECURE;