summaryrefslogtreecommitdiff
path: root/chromium/net/third_party/quiche/src/quic/qbone/qbone_packet_exchanger_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/third_party/quiche/src/quic/qbone/qbone_packet_exchanger_test.cc')
-rw-r--r--chromium/net/third_party/quiche/src/quic/qbone/qbone_packet_exchanger_test.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/chromium/net/third_party/quiche/src/quic/qbone/qbone_packet_exchanger_test.cc b/chromium/net/third_party/quiche/src/quic/qbone/qbone_packet_exchanger_test.cc
index a2b502fa26f..5db87536aba 100644
--- a/chromium/net/third_party/quiche/src/quic/qbone/qbone_packet_exchanger_test.cc
+++ b/chromium/net/third_party/quiche/src/quic/qbone/qbone_packet_exchanger_test.cc
@@ -251,5 +251,21 @@ TEST(QbonePacketExchangerTest, WriteErrorsGetNotified) {
ASSERT_TRUE(exchanger.packets_written().empty());
}
+TEST(QbonePacketExchangerTest, NullVisitorDoesntCrash) {
+ FakeQbonePacketExchanger exchanger(nullptr, kMaxPendingPackets);
+ MockQboneClient client;
+ std::string packet = "data";
+
+ // Force read error.
+ std::string io_error = "I/O error";
+ exchanger.SetReadError(io_error);
+ EXPECT_FALSE(exchanger.ReadAndDeliverPacket(&client));
+
+ // Force write error
+ exchanger.ForceWriteFailure(false, io_error);
+ exchanger.WritePacketToNetwork(packet.data(), packet.length());
+ EXPECT_TRUE(exchanger.packets_written().empty());
+}
+
} // namespace
} // namespace quic