summaryrefslogtreecommitdiff
path: root/chromium/net/third_party/quiche/src/quic/tools/quic_simple_server_session_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/third_party/quiche/src/quic/tools/quic_simple_server_session_test.cc')
-rw-r--r--chromium/net/third_party/quiche/src/quic/tools/quic_simple_server_session_test.cc117
1 files changed, 71 insertions, 46 deletions
diff --git a/chromium/net/third_party/quiche/src/quic/tools/quic_simple_server_session_test.cc b/chromium/net/third_party/quiche/src/quic/tools/quic_simple_server_session_test.cc
index f9c28a701d0..f5dad7d2d3f 100644
--- a/chromium/net/third_party/quiche/src/quic/tools/quic_simple_server_session_test.cc
+++ b/chromium/net/third_party/quiche/src/quic/tools/quic_simple_server_session_test.cc
@@ -95,8 +95,10 @@ class MockQuicCryptoServerStream : public QuicCryptoServerStream {
delete;
~MockQuicCryptoServerStream() override {}
- MOCK_METHOD1(SendServerConfigUpdate,
- void(const CachedNetworkParameters* cached_network_parameters));
+ MOCK_METHOD(void,
+ SendServerConfigUpdate,
+ (const CachedNetworkParameters*),
+ (override));
bool encryption_established() const override { return true; }
};
@@ -104,15 +106,16 @@ class MockQuicCryptoServerStream : public QuicCryptoServerStream {
class MockTlsServerHandshaker : public TlsServerHandshaker {
public:
explicit MockTlsServerHandshaker(QuicSession* session,
- SSL_CTX* ssl_ctx,
- ProofSource* proof_source)
- : TlsServerHandshaker(session, ssl_ctx, proof_source) {}
+ const QuicCryptoServerConfig& crypto_config)
+ : TlsServerHandshaker(session, crypto_config) {}
MockTlsServerHandshaker(const MockTlsServerHandshaker&) = delete;
MockTlsServerHandshaker& operator=(const MockTlsServerHandshaker&) = delete;
~MockTlsServerHandshaker() override {}
- MOCK_METHOD1(SendServerConfigUpdate,
- void(const CachedNetworkParameters* cached_network_parameters));
+ MOCK_METHOD(void,
+ SendServerConfigUpdate,
+ (const CachedNetworkParameters*),
+ (override));
bool encryption_established() const override { return true; }
};
@@ -127,8 +130,7 @@ QuicCryptoServerStreamBase* CreateMockCryptoServerStream(
return new MockQuicCryptoServerStream(
crypto_config, compressed_certs_cache, session, helper);
case PROTOCOL_TLS1_3:
- return new MockTlsServerHandshaker(session, crypto_config->ssl_ctx(),
- crypto_config->proof_source());
+ return new MockTlsServerHandshaker(session, *crypto_config);
case PROTOCOL_UNSUPPORTED:
break;
}
@@ -158,11 +160,13 @@ class MockQuicConnectionWithSendStreamData : public MockQuicConnection {
.WillByDefault(Invoke(consume_all_data));
}
- MOCK_METHOD4(SendStreamData,
- QuicConsumedData(QuicStreamId id,
- size_t write_length,
- QuicStreamOffset offset,
- StreamSendingState state));
+ MOCK_METHOD(QuicConsumedData,
+ SendStreamData,
+ (QuicStreamId id,
+ size_t write_length,
+ QuicStreamOffset offset,
+ StreamSendingState state),
+ (override));
};
class MockQuicSimpleServerSession : public QuicSimpleServerSession {
@@ -191,12 +195,14 @@ class MockQuicSimpleServerSession : public QuicSimpleServerSession {
return WritePushPromiseMock(original_stream_id, promised_stream_id,
headers);
}
- MOCK_METHOD3(WritePushPromiseMock,
- void(QuicStreamId original_stream_id,
- QuicStreamId promised_stream_id,
- const spdy::SpdyHeaderBlock& headers));
-
- MOCK_METHOD1(SendBlocked, void(QuicStreamId));
+ MOCK_METHOD(void,
+ WritePushPromiseMock,
+ (QuicStreamId original_stream_id,
+ QuicStreamId promised_stream_id,
+ const spdy::SpdyHeaderBlock& headers),
+ ());
+
+ MOCK_METHOD(void, SendBlocked, (QuicStreamId), (override));
};
class QuicSimpleServerSessionTest
@@ -323,7 +329,7 @@ TEST_P(QuicSimpleServerSessionTest, CloseStreamDueToReset) {
QuicStreamFrame data1(GetNthClientInitiatedBidirectionalId(0), false, 0,
quiche::QuicheStringPiece("HT"));
session_->OnStreamFrame(data1);
- EXPECT_EQ(1u, session_->GetNumOpenIncomingStreams());
+ EXPECT_EQ(1u, QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()));
// Receive a reset (and send a RST in response).
QuicRstStreamFrame rst1(kInvalidControlFrameId,
@@ -343,13 +349,13 @@ TEST_P(QuicSimpleServerSessionTest, CloseStreamDueToReset) {
// a one-way close.
InjectStopSending(GetNthClientInitiatedBidirectionalId(0),
QUIC_ERROR_PROCESSING_STREAM);
- EXPECT_EQ(0u, session_->GetNumOpenIncomingStreams());
+ EXPECT_EQ(0u, QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()));
// Send the same two bytes of payload in a new packet.
session_->OnStreamFrame(data1);
// The stream should not be re-opened.
- EXPECT_EQ(0u, session_->GetNumOpenIncomingStreams());
+ EXPECT_EQ(0u, QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()));
EXPECT_TRUE(connection_->connected());
}
@@ -373,7 +379,7 @@ TEST_P(QuicSimpleServerSessionTest, NeverOpenStreamDueToReset) {
InjectStopSending(GetNthClientInitiatedBidirectionalId(0),
QUIC_ERROR_PROCESSING_STREAM);
- EXPECT_EQ(0u, session_->GetNumOpenIncomingStreams());
+ EXPECT_EQ(0u, QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()));
// Send two bytes of payload.
QuicStreamFrame data1(GetNthClientInitiatedBidirectionalId(0), false, 0,
@@ -381,7 +387,7 @@ TEST_P(QuicSimpleServerSessionTest, NeverOpenStreamDueToReset) {
session_->OnStreamFrame(data1);
// The stream should never be opened, now that the reset is received.
- EXPECT_EQ(0u, session_->GetNumOpenIncomingStreams());
+ EXPECT_EQ(0u, QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()));
EXPECT_TRUE(connection_->connected());
}
@@ -393,7 +399,7 @@ TEST_P(QuicSimpleServerSessionTest, AcceptClosedStream) {
quiche::QuicheStringPiece("\2\0\0\0\0\0\0\0HT"));
session_->OnStreamFrame(frame1);
session_->OnStreamFrame(frame2);
- EXPECT_EQ(2u, session_->GetNumOpenIncomingStreams());
+ EXPECT_EQ(2u, QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()));
// Send a reset (and expect the peer to send a RST in response).
QuicRstStreamFrame rst(kInvalidControlFrameId,
@@ -424,7 +430,7 @@ TEST_P(QuicSimpleServerSessionTest, AcceptClosedStream) {
session_->OnStreamFrame(frame3);
session_->OnStreamFrame(frame4);
// The stream should never be opened, now that the reset is received.
- EXPECT_EQ(1u, session_->GetNumOpenIncomingStreams());
+ EXPECT_EQ(1u, QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()));
EXPECT_TRUE(connection_->connected());
}
@@ -435,12 +441,14 @@ TEST_P(QuicSimpleServerSessionTest, CreateIncomingStreamDisconnected) {
}
// Tests that incoming stream creation fails when connection is not connected.
- size_t initial_num_open_stream = session_->GetNumOpenIncomingStreams();
+ size_t initial_num_open_stream =
+ QuicSessionPeer::GetNumOpenDynamicStreams(session_.get());
QuicConnectionPeer::TearDownLocalConnectionState(connection_);
EXPECT_QUIC_BUG(QuicSimpleServerSessionPeer::CreateIncomingStream(
session_.get(), GetNthClientInitiatedBidirectionalId(0)),
"ShouldCreateIncomingStream called when disconnected");
- EXPECT_EQ(initial_num_open_stream, session_->GetNumOpenIncomingStreams());
+ EXPECT_EQ(initial_num_open_stream,
+ QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()));
}
TEST_P(QuicSimpleServerSessionTest, CreateIncomingStream) {
@@ -457,14 +465,16 @@ TEST_P(QuicSimpleServerSessionTest, CreateOutgoingDynamicStreamDisconnected) {
}
// Tests that outgoing stream creation fails when connection is not connected.
- size_t initial_num_open_stream = session_->GetNumOpenOutgoingStreams();
+ size_t initial_num_open_stream =
+ QuicSessionPeer::GetNumOpenDynamicStreams(session_.get());
QuicConnectionPeer::TearDownLocalConnectionState(connection_);
EXPECT_QUIC_BUG(
QuicSimpleServerSessionPeer::CreateOutgoingUnidirectionalStream(
session_.get()),
"ShouldCreateOutgoingUnidirectionalStream called when disconnected");
- EXPECT_EQ(initial_num_open_stream, session_->GetNumOpenOutgoingStreams());
+ EXPECT_EQ(initial_num_open_stream,
+ QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()));
}
TEST_P(QuicSimpleServerSessionTest, CreateOutgoingDynamicStreamUnencrypted) {
@@ -475,12 +485,14 @@ TEST_P(QuicSimpleServerSessionTest, CreateOutgoingDynamicStreamUnencrypted) {
// Tests that outgoing stream creation fails when encryption has not yet been
// established.
- size_t initial_num_open_stream = session_->GetNumOpenOutgoingStreams();
+ size_t initial_num_open_stream =
+ QuicSessionPeer::GetNumOpenDynamicStreams(session_.get());
EXPECT_QUIC_BUG(
QuicSimpleServerSessionPeer::CreateOutgoingUnidirectionalStream(
session_.get()),
"Encryption not established so no outgoing stream created.");
- EXPECT_EQ(initial_num_open_stream, session_->GetNumOpenOutgoingStreams());
+ EXPECT_EQ(initial_num_open_stream,
+ QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()));
}
TEST_P(QuicSimpleServerSessionTest, CreateOutgoingDynamicStreamUptoLimit) {
@@ -493,8 +505,9 @@ TEST_P(QuicSimpleServerSessionTest, CreateOutgoingDynamicStreamUptoLimit) {
QuicStreamFrame data1(GetNthClientInitiatedBidirectionalId(0), false, 0,
quiche::QuicheStringPiece("HT"));
session_->OnStreamFrame(data1);
- EXPECT_EQ(1u, session_->GetNumOpenIncomingStreams());
- EXPECT_EQ(0u, session_->GetNumOpenOutgoingStreams());
+ EXPECT_EQ(1u, QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()));
+ EXPECT_EQ(0u, QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()) -
+ /*incoming=*/1);
if (!VersionUsesHttp3(transport_version())) {
session_->UnregisterStreamPriority(
@@ -525,20 +538,24 @@ TEST_P(QuicSimpleServerSessionTest, CreateOutgoingDynamicStreamUptoLimit) {
} else {
EXPECT_EQ(GetNthServerInitiatedUnidirectionalId(i), created_stream->id());
}
- EXPECT_EQ(i + 1, session_->GetNumOpenOutgoingStreams());
+ EXPECT_EQ(i + 1, QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()) -
+ /*incoming=*/1);
}
// Continuing creating push stream would fail.
EXPECT_EQ(nullptr,
QuicSimpleServerSessionPeer::CreateOutgoingUnidirectionalStream(
session_.get()));
- EXPECT_EQ(kMaxStreamsForTest, session_->GetNumOpenOutgoingStreams());
+ EXPECT_EQ(kMaxStreamsForTest,
+ QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()) -
+ /*incoming=*/1);
// Create peer initiated stream should have no problem.
QuicStreamFrame data2(GetNthClientInitiatedBidirectionalId(1), false, 0,
quiche::QuicheStringPiece("HT"));
session_->OnStreamFrame(data2);
- EXPECT_EQ(2u, session_->GetNumOpenIncomingStreams());
+ EXPECT_EQ(2u, QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()) -
+ /*outcoming=*/kMaxStreamsForTest);
}
TEST_P(QuicSimpleServerSessionTest, OnStreamFrameWithEvenStreamId) {
@@ -553,7 +570,8 @@ TEST_P(QuicSimpleServerSessionTest, OnStreamFrameWithEvenStreamId) {
// Tests that calling GetOrCreateStream() on an outgoing stream not promised yet
// should result close connection.
TEST_P(QuicSimpleServerSessionTest, GetEvenIncomingError) {
- const size_t initial_num_open_stream = session_->GetNumOpenIncomingStreams();
+ const size_t initial_num_open_stream =
+ QuicSessionPeer::GetNumOpenDynamicStreams(session_.get());
const QuicErrorCode expected_error = VersionUsesHttp3(transport_version())
? QUIC_HTTP_STREAM_WRONG_DIRECTION
: QUIC_INVALID_STREAM_ID;
@@ -562,7 +580,8 @@ TEST_P(QuicSimpleServerSessionTest, GetEvenIncomingError) {
EXPECT_EQ(nullptr,
QuicSessionPeer::GetOrCreateStream(
session_.get(), GetNthServerInitiatedUnidirectionalId(3)));
- EXPECT_EQ(initial_num_open_stream, session_->GetNumOpenIncomingStreams());
+ EXPECT_EQ(initial_num_open_stream,
+ QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()));
}
// In order to test the case where server push stream creation goes beyond
@@ -761,7 +780,8 @@ TEST_P(QuicSimpleServerSessionServerPushTest, TestPromisePushResources) {
}
size_t num_resources = kMaxStreamsForTest + 5;
PromisePushResources(num_resources);
- EXPECT_EQ(kMaxStreamsForTest, session_->GetNumOpenOutgoingStreams());
+ EXPECT_EQ(kMaxStreamsForTest,
+ QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()));
}
// Tests that after promised stream queued up, when an opened stream is marked
@@ -827,13 +847,16 @@ TEST_P(QuicSimpleServerSessionServerPushTest,
}
if (VersionUsesHttp3(transport_version())) {
- session_->StreamDraining(GetNthServerInitiatedUnidirectionalId(3));
+ session_->StreamDraining(GetNthServerInitiatedUnidirectionalId(3),
+ /*unidirectional=*/true);
} else {
- session_->StreamDraining(GetNthServerInitiatedUnidirectionalId(0));
+ session_->StreamDraining(GetNthServerInitiatedUnidirectionalId(0),
+ /*unidirectional=*/true);
}
// Number of open outgoing streams should still be the same, because a new
// stream is opened. And the queue should be empty.
- EXPECT_EQ(kMaxStreamsForTest, session_->GetNumOpenOutgoingStreams());
+ EXPECT_EQ(kMaxStreamsForTest,
+ QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()));
}
// Tests that after all resources are promised, a RST frame from client can
@@ -926,8 +949,10 @@ TEST_P(QuicSimpleServerSessionServerPushTest,
session_->OnMaxStreamsFrame(
QuicMaxStreamsFrame(0, num_resources + 3, /*unidirectional=*/true));
}
- session_->StreamDraining(GetNthServerInitiatedUnidirectionalId(3));
- session_->StreamDraining(GetNthServerInitiatedUnidirectionalId(4));
+ session_->StreamDraining(GetNthServerInitiatedUnidirectionalId(3),
+ /*unidirectional=*/true);
+ session_->StreamDraining(GetNthServerInitiatedUnidirectionalId(4),
+ /*unidirectional=*/true);
}
// Tests that closing a open outgoing stream can trigger a promised resource in