mirror of
https://github.com/facebookincubator/mvfst.git
synced 2025-11-24 04:01:07 +03:00
Add reliable_stream_reset transport parameter
Summary: This diff adds the reliable_stream_reset transport parameter to mvfst. Reviewed By: hanidamlaj Differential Revision: D65383676 fbshipit-source-id: cb2f6a1a90004ea489447b67ed3cfc12ca90b804
This commit is contained in:
committed by
Facebook GitHub Bot
parent
61c3de4842
commit
ae011587d5
@@ -235,6 +235,76 @@ TEST_F(ClientStateMachineTest, TestProcessKnobFramesSupportedParamDisabled) {
|
||||
EXPECT_FALSE(clientConn.peerAdvertisedKnobFrameSupport);
|
||||
}
|
||||
|
||||
TEST_F(
|
||||
ClientStateMachineTest,
|
||||
TestProcessReliableStreamResetSupportedParamEnabled) {
|
||||
QuicClientConnectionState clientConn(
|
||||
FizzClientQuicHandshakeContext::Builder().build());
|
||||
std::vector<TransportParameter> transportParams;
|
||||
transportParams.push_back(
|
||||
encodeEmptyParameter(TransportParameterId::reliable_stream_reset));
|
||||
ServerTransportParameters serverTransportParams = {
|
||||
std::move(transportParams)};
|
||||
processServerInitialParams(clientConn, serverTransportParams, 0);
|
||||
EXPECT_TRUE(clientConn.peerAdvertisedReliableStreamResetSupport);
|
||||
}
|
||||
|
||||
TEST_F(
|
||||
ClientStateMachineTest,
|
||||
TestProcessReliableStreamResetSupportedParamDisabled) {
|
||||
QuicClientConnectionState clientConn(
|
||||
FizzClientQuicHandshakeContext::Builder().build());
|
||||
std::vector<TransportParameter> transportParams;
|
||||
ServerTransportParameters serverTransportParams = {
|
||||
std::move(transportParams)};
|
||||
processServerInitialParams(clientConn, serverTransportParams, 0);
|
||||
EXPECT_FALSE(clientConn.peerAdvertisedReliableStreamResetSupport);
|
||||
}
|
||||
|
||||
TEST_F(ClientStateMachineTest, TestProcessReliableStreamResetNonEmptyParam) {
|
||||
QuicClientConnectionState clientConn(
|
||||
FizzClientQuicHandshakeContext::Builder().build());
|
||||
std::vector<TransportParameter> transportParams;
|
||||
transportParams.push_back(
|
||||
encodeIntegerParameter(TransportParameterId::reliable_stream_reset, 0));
|
||||
ServerTransportParameters serverTransportParams = {
|
||||
std::move(transportParams)};
|
||||
EXPECT_THROW(
|
||||
processServerInitialParams(clientConn, serverTransportParams, 0),
|
||||
QuicTransportException);
|
||||
}
|
||||
|
||||
TEST_F(
|
||||
ClientStateMachineTest,
|
||||
TestEncodeReliableStreamResetSupportedParamEnabled) {
|
||||
QuicClientConnectionState clientConn(
|
||||
FizzClientQuicHandshakeContext::Builder().build());
|
||||
clientConn.transportSettings.advertisedReliableResetStreamSupport = true;
|
||||
auto customTransportParams = getSupportedExtTransportParams(clientConn);
|
||||
EXPECT_THAT(
|
||||
customTransportParams,
|
||||
Contains(testing::Field(
|
||||
&TransportParameter::parameter,
|
||||
testing::Eq(TransportParameterId::reliable_stream_reset))));
|
||||
auto it = findParameter(
|
||||
customTransportParams, TransportParameterId::reliable_stream_reset);
|
||||
EXPECT_TRUE(it->value->empty());
|
||||
}
|
||||
|
||||
TEST_F(
|
||||
ClientStateMachineTest,
|
||||
TestEncodeReliableStreamResetSupportedParamDisabled) {
|
||||
QuicClientConnectionState clientConn(
|
||||
FizzClientQuicHandshakeContext::Builder().build());
|
||||
clientConn.transportSettings.advertisedReliableResetStreamSupport = false;
|
||||
auto customTransportParams = getSupportedExtTransportParams(clientConn);
|
||||
EXPECT_THAT(
|
||||
customTransportParams,
|
||||
Not(Contains(testing::Field(
|
||||
&TransportParameter::parameter,
|
||||
testing::Eq(TransportParameterId::reliable_stream_reset)))));
|
||||
}
|
||||
|
||||
struct maxStreamGroupsAdvertizedtestStruct {
|
||||
uint64_t peerMaxGroupsIn;
|
||||
OptionalIntegral<uint64_t> expectedTransportSettingVal;
|
||||
|
||||
Reference in New Issue
Block a user