From f7791db49e6d66a9070071892d4ca99f8155677f Mon Sep 17 00:00:00 2001 From: Luca Niccolini Date: Mon, 2 Aug 2021 18:50:18 -0700 Subject: [PATCH] add test for Zero-Length datagrams Summary: easy Reviewed By: mjoras Differential Revision: D30060685 fbshipit-source-id: 813499c7e80fecd4674152f3e223988ae5eae7a5 --- quic/api/test/QuicTransportBaseTest.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/quic/api/test/QuicTransportBaseTest.cpp b/quic/api/test/QuicTransportBaseTest.cpp index 3387dcce0..164482afc 100644 --- a/quic/api/test/QuicTransportBaseTest.cpp +++ b/quic/api/test/QuicTransportBaseTest.cpp @@ -3845,6 +3845,20 @@ TEST_F(QuicTransportImplTest, DatagramCallbackDatagramAvailable) { transport->driveReadCallbacks(); } +TEST_F(QuicTransportImplTest, ZeroLengthDatagram) { + NiceMock datagramCb; + transport->enableDatagram(); + transport->setDatagramCallback(&datagramCb); + transport->addDatagram(folly::IOBuf::copyBuffer("")); + EXPECT_CALL(datagramCb, onDatagramsAvailable()); + transport->driveReadCallbacks(); + auto datagrams = transport->readDatagrams(); + EXPECT_FALSE(datagrams.hasError()); + EXPECT_EQ(datagrams->size(), 1); + EXPECT_TRUE(datagrams->front() != nullptr); + EXPECT_EQ(datagrams->front()->computeChainDataLength(), 0); +} + TEST_F(QuicTransportImplTest, Cmsgs) { transport->setServerConnectionId(); folly::SocketOptionMap cmsgs;