chromium/net/third_party/quiche/src/quiche/quic/core/quic_generic_session_test.cc

// Copyright (c) 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// An integration test that covers interactions between QuicGenericSession
// client and server sessions.

#include "quiche/quic/core/quic_generic_session.h"

#include <cstddef>
#include <cstring>
#include <memory>
#include <optional>
#include <string>
#include <vector>

#include "absl/strings/string_view.h"
#include "quiche/quic/core/crypto/quic_compressed_certs_cache.h"
#include "quiche/quic/core/crypto/quic_crypto_client_config.h"
#include "quiche/quic/core/crypto/quic_crypto_server_config.h"
#include "quiche/quic/core/crypto/quic_random.h"
#include "quiche/quic/core/quic_connection.h"
#include "quiche/quic/core/quic_constants.h"
#include "quiche/quic/core/quic_datagram_queue.h"
#include "quiche/quic/core/quic_error_codes.h"
#include "quiche/quic/core/quic_stream.h"
#include "quiche/quic/core/quic_types.h"
#include "quiche/quic/core/web_transport_interface.h"
#include "quiche/quic/platform/api/quic_test.h"
#include "quiche/quic/test_tools/crypto_test_utils.h"
#include "quiche/quic/test_tools/quic_session_peer.h"
#include "quiche/quic/test_tools/quic_test_utils.h"
#include "quiche/quic/test_tools/simulator/simulator.h"
#include "quiche/quic/test_tools/simulator/test_harness.h"
#include "quiche/quic/test_tools/web_transport_test_tools.h"
#include "quiche/quic/tools/web_transport_test_visitors.h"
#include "quiche/common/quiche_stream.h"
#include "quiche/common/test_tools/quiche_test_utils.h"
#include "quiche/web_transport/web_transport.h"

namespace quic::test {
namespace {

enum ServerType {};

StatusIs;
Simulator;
_;
Assign;
AtMost;
Eq;

class CountingDatagramObserver : public QuicDatagramQueue::Observer {};

class ClientEndpoint : public simulator::QuicEndpointWithConnection {};

class ServerEndpoint : public simulator::QuicEndpointWithConnection {};

class QuicGenericSessionTest : public QuicTest {};

TEST_F(QuicGenericSessionTest, SuccessfulHandshake) {}

TEST_F(QuicGenericSessionTest, SendOutgoingStreams) {}

TEST_F(QuicGenericSessionTest, EchoBidirectionalStreams) {}

TEST_F(QuicGenericSessionTest, EchoUnidirectionalStreams) {}

TEST_F(QuicGenericSessionTest, EchoStreamsUsingPeekApi) {}

TEST_F(QuicGenericSessionTest, EchoDatagram) {}

// This test sets the datagram queue to an nearly-infinite queueing time, and
// then sends 1000 datagrams.  We expect to receive most of them back, since the
// datagrams would be paced out by the congestion controller.
TEST_F(QuicGenericSessionTest, EchoALotOfDatagrams) {}

TEST_F(QuicGenericSessionTest, OutgoingStreamFlowControlBlocked) {}

TEST_F(QuicGenericSessionTest, ExpireDatagrams) {}

TEST_F(QuicGenericSessionTest, LoseDatagrams) {}

TEST_F(QuicGenericSessionTest, WriteWhenBufferFull) {}

}  // namespace
}  // namespace quic::test