mirror of
https://github.com/facebookincubator/mvfst.git
synced 2025-08-06 22:22:38 +03:00
Write a buffer's meta data into QUIC
Summary: Instead of writing real data into the transport, we want to support a use case where only its metadata is written to the transport. Sending of the real data is delegated to another entity in such setup. Reviewed By: mjoras Differential Revision: D26131772 fbshipit-source-id: 4fcfa3a1626203f63c61898e6de089a3079d043d
This commit is contained in:
committed by
Facebook GitHub Bot
parent
968b39f4a9
commit
adc1e15eff
@@ -3279,5 +3279,31 @@ TEST_F(QuicTransportTest, PrioritySetAndGet) {
|
||||
EXPECT_EQ(LocalErrorCode::CONNECTION_CLOSED, closedConnStreamPri.error());
|
||||
}
|
||||
|
||||
TEST_F(QuicTransportTest, WriteBufMetaIntoStream) {
|
||||
auto streamId = transport_->createBidirectionalStream().value();
|
||||
size_t bufferLength = 2000;
|
||||
BufferMeta meta(bufferLength);
|
||||
auto buf = buildRandomInputData(20);
|
||||
// Some amount of real data needs to be written first:
|
||||
transport_->writeChain(streamId, std::move(buf), false);
|
||||
transport_->writeBufMeta(streamId, meta, true);
|
||||
auto& stream =
|
||||
*transport_->getConnectionState().streamManager->findStream(streamId);
|
||||
EXPECT_GE(stream.writeBufMeta.offset, 20);
|
||||
EXPECT_EQ(stream.writeBufMeta.length, bufferLength);
|
||||
EXPECT_TRUE(stream.writeBufMeta.eof);
|
||||
EXPECT_EQ(
|
||||
*stream.finalWriteOffset,
|
||||
stream.writeBufMeta.offset + stream.writeBufMeta.length);
|
||||
}
|
||||
|
||||
TEST_F(QuicTransportTest, WriteBufMetaWithoutRealData) {
|
||||
auto streamId = transport_->createBidirectionalStream().value();
|
||||
size_t bufferLength = 2000;
|
||||
BufferMeta meta(bufferLength);
|
||||
auto result = transport_->writeBufMeta(streamId, meta, true);
|
||||
EXPECT_TRUE(result.hasError());
|
||||
}
|
||||
|
||||
} // namespace test
|
||||
} // namespace quic
|
||||
|
Reference in New Issue
Block a user