From 64efb370afb1897dbb1b42c42287ae04574e7a4b Mon Sep 17 00:00:00 2001 From: Yang Chi Date: Wed, 29 Apr 2020 08:59:22 -0700 Subject: [PATCH] Fix Quic Ping testcases Summary: as title (Note: this ignores all push blocking failures!) Reviewed By: mjoras Differential Revision: D21303116 fbshipit-source-id: 5e76e02a618a5f79867adae0a78e0174630ce039 --- quic/api/test/QuicTransportBaseTest.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/quic/api/test/QuicTransportBaseTest.cpp b/quic/api/test/QuicTransportBaseTest.cpp index 78383030c..164097d6a 100644 --- a/quic/api/test/QuicTransportBaseTest.cpp +++ b/quic/api/test/QuicTransportBaseTest.cpp @@ -122,6 +122,12 @@ MinStreamDataFrame decodeMinStreamDataFrame(folly::io::Cursor& cursor) { return frame; } +class TestPingCallback : public QuicSocket::PingCallback { + public: + void pingAcknowledged() noexcept override {} + void pingTimeout() noexcept override {} +}; + class TestQuicTransport : public QuicTransportBase, public std::enable_shared_from_this { @@ -2569,11 +2575,13 @@ TEST_F(QuicTransportImplTest, CloseFromCancelDeliveryCallbacksForStream) { TEST_F(QuicTransportImplTest, SuccessfulPing) { auto conn = transport->transportConn; std::chrono::milliseconds interval(10); - transport->invokeSendPing(nullptr, interval); + TestPingCallback pingCallback; + transport->invokeSendPing(&pingCallback, interval); EXPECT_EQ(transport->isPingTimeoutScheduled(), true); EXPECT_EQ(conn->pendingEvents.cancelPingTimeout, false); conn->pendingEvents.cancelPingTimeout = true; transport->invokeHandlePingCallback(); + evb->loopOnce(); EXPECT_EQ(transport->isPingTimeoutScheduled(), false); EXPECT_EQ(conn->pendingEvents.cancelPingTimeout, false); } @@ -2581,7 +2589,8 @@ TEST_F(QuicTransportImplTest, SuccessfulPing) { TEST_F(QuicTransportImplTest, FailedPing) { auto conn = transport->transportConn; std::chrono::milliseconds interval(10); - transport->invokeSendPing(nullptr, interval); + TestPingCallback pingCallback; + transport->invokeSendPing(&pingCallback, interval); EXPECT_EQ(transport->isPingTimeoutScheduled(), true); EXPECT_EQ(conn->pendingEvents.cancelPingTimeout, false); conn->pendingEvents.cancelPingTimeout = true;