In crypto_test_utils, move connection close frame between two test connections. This allows tests to check connection close errors on both ends.
PiperOrigin-RevId: 351845706
Change-Id: I1b3d22cc55a1aa2b728c3598555e633d9f30bb28
diff --git a/quic/test_tools/crypto_test_utils.cc b/quic/test_tools/crypto_test_utils.cc
index 17947f8..ce1c217 100644
--- a/quic/test_tools/crypto_test_utils.cc
+++ b/quic/test_tools/crypto_test_utils.cc
@@ -400,17 +400,21 @@
PacketSavingConnection* server_conn,
QuicCryptoStream* server,
size_t server_i) {
- QUIC_LOG(INFO) << "Processing "
- << client_conn->encrypted_packets_.size() - client_i
- << " packets client->server";
- MovePackets(client_conn, &client_i, server, server_conn,
- Perspective::IS_SERVER);
+ if (client_conn->encrypted_packets_.size() != client_i) {
+ QUIC_LOG(INFO) << "Processing "
+ << client_conn->encrypted_packets_.size() - client_i
+ << " packets client->server";
+ MovePackets(client_conn, &client_i, server, server_conn,
+ Perspective::IS_SERVER);
+ }
- QUIC_LOG(INFO) << "Processing "
- << server_conn->encrypted_packets_.size() - server_i
- << " packets server->client";
- MovePackets(server_conn, &server_i, client, client_conn,
- Perspective::IS_CLIENT);
+ if (server_conn->encrypted_packets_.size() != server_i) {
+ QUIC_LOG(INFO) << "Processing "
+ << server_conn->encrypted_packets_.size() - server_i
+ << " packets server->client";
+ MovePackets(server_conn, &server_i, client, client_conn,
+ Perspective::IS_CLIENT);
+ }
return std::make_pair(client_i, server_i);
}
@@ -795,6 +799,9 @@
for (const auto& crypto_frame : framer.crypto_frames()) {
dest_stream->OnCryptoFrame(*crypto_frame);
}
+ if (!framer.connection_close_frames().empty() && dest_conn->connected()) {
+ dest_conn->OnConnectionCloseFrame(framer.connection_close_frames()[0]);
+ }
}
*inout_packet_index = index;