mirror of
https://github.com/facebookincubator/mvfst.git
synced 2025-11-27 03:41:14 +03:00
Support for TX timestamping
Summary: Adds support for timestamping on TX (TX byte events). This allows the application to determine when a byte that it previously wrote to the transport was put onto the wire. Callbacks are processed within a new function `QuicTransportBase::processCallbacksAfterWriteData`, which is invoked by `writeSocketDataAndCatch`. Reviewed By: mjoras Differential Revision: D22008855 fbshipit-source-id: 99c1697cb74bb2387dbad231611be58f9392c99f
This commit is contained in:
committed by
Facebook GitHub Bot
parent
d332cc4e0c
commit
b4df09831b
@@ -1880,6 +1880,38 @@ TEST_F(QuicStreamFunctionsTest, LargestWriteOffsetSeenNoFIN) {
|
||||
EXPECT_EQ(120, getLargestWriteOffsetSeen(stream));
|
||||
}
|
||||
|
||||
TEST_F(QuicStreamFunctionsTest, StreamLargestWriteOffsetTxedNothingTxed) {
|
||||
QuicStreamState stream(3, conn);
|
||||
stream.currentWriteOffset = 0;
|
||||
EXPECT_EQ(folly::none, getLargestWriteOffsetTxed(stream));
|
||||
}
|
||||
|
||||
TEST_F(QuicStreamFunctionsTest, StreamLargestWriteOffsetTxedOneByteTxed) {
|
||||
QuicStreamState stream(3, conn);
|
||||
stream.currentWriteOffset = 1;
|
||||
ASSERT_TRUE(getLargestWriteOffsetTxed(stream).has_value());
|
||||
EXPECT_EQ(0, getLargestWriteOffsetTxed(stream).value());
|
||||
}
|
||||
|
||||
TEST_F(QuicStreamFunctionsTest, StreamLargestWriteOffsetTxedHundredBytesTxed) {
|
||||
QuicStreamState stream(3, conn);
|
||||
stream.currentWriteOffset = 100;
|
||||
ASSERT_TRUE(getLargestWriteOffsetTxed(stream).has_value());
|
||||
EXPECT_EQ(99, getLargestWriteOffsetTxed(stream).value());
|
||||
}
|
||||
|
||||
TEST_F(
|
||||
QuicStreamFunctionsTest,
|
||||
StreamLargestWriteOffsetTxedIgnoreFinalWriteOffset) {
|
||||
// finalWriteOffset is set when writeChain is called with EoR, but we should
|
||||
// always use currentWriteOffset to determine how many bytes have been TXed
|
||||
QuicStreamState stream(3, conn);
|
||||
stream.currentWriteOffset = 10;
|
||||
stream.finalWriteOffset = 100;
|
||||
ASSERT_TRUE(getLargestWriteOffsetTxed(stream).has_value());
|
||||
EXPECT_EQ(9, getLargestWriteOffsetTxed(stream).value());
|
||||
}
|
||||
|
||||
TEST_F(QuicStreamFunctionsTest, StreamNextOffsetToDeliverNothingAcked) {
|
||||
QuicStreamState stream(3, conn);
|
||||
stream.currentWriteOffset = 100;
|
||||
|
||||
Reference in New Issue
Block a user