mirror of
https://github.com/facebookincubator/mvfst.git
synced 2025-08-04 00:01:38 +03:00
Add new retransmission buffer directly at the end of buffer list
Summary: The retransmission buffer list is sorted by offset. New written always has higher offset than existing ones. Thus the binary search isn't necessary. Reviewed By: mjoras Differential Revision: D17477354 fbshipit-source-id: d413a5c84c3831b257d5c1e6375bec56a763926b
This commit is contained in:
committed by
Facebook Github Bot
parent
6f49898bf9
commit
f5ca7ef590
@ -1155,6 +1155,41 @@ TEST_F(QuicTransportFunctionsTest, WriteQuicDataToSocketWithNoBytesForHeader) {
|
||||
EXPECT_TRUE(conn->outstandingPackets.empty());
|
||||
}
|
||||
|
||||
TEST_F(QuicTransportFunctionsTest, WriteQuicDataToSocketRetxBufferSorted) {
|
||||
EventBase evb;
|
||||
folly::test::MockAsyncUDPSocket socket(&evb);
|
||||
auto conn = createConn();
|
||||
auto stream = conn->streamManager->createNextBidirectionalStream().value();
|
||||
auto buf1 = IOBuf::copyBuffer("Whatsapp");
|
||||
writeDataToQuicStream(*stream, std::move(buf1), false);
|
||||
writeQuicDataToSocket(
|
||||
socket,
|
||||
*conn,
|
||||
*conn->clientConnectionId,
|
||||
*conn->serverConnectionId,
|
||||
*aead,
|
||||
*headerCipher,
|
||||
getVersion(*conn),
|
||||
conn->transportSettings.writeConnectionDataPacketsLimit);
|
||||
EXPECT_EQ(1, stream->retransmissionBuffer.size());
|
||||
|
||||
auto buf2 = IOBuf::copyBuffer("Google Buzz");
|
||||
writeDataToQuicStream(*stream, std::move(buf2), false);
|
||||
writeQuicDataToSocket(
|
||||
socket,
|
||||
*conn,
|
||||
*conn->clientConnectionId,
|
||||
*conn->serverConnectionId,
|
||||
*aead,
|
||||
*headerCipher,
|
||||
getVersion(*conn),
|
||||
conn->transportSettings.writeConnectionDataPacketsLimit);
|
||||
EXPECT_EQ(2, stream->retransmissionBuffer.size());
|
||||
EXPECT_GT(
|
||||
stream->retransmissionBuffer.back().offset,
|
||||
stream->retransmissionBuffer.front().offset);
|
||||
}
|
||||
|
||||
TEST_F(QuicTransportFunctionsTest, NothingWritten) {
|
||||
auto conn = createConn();
|
||||
auto mockCongestionController = std::make_unique<MockCongestionController>();
|
||||
|
Reference in New Issue
Block a user