#include "quiche/quic/core/quic_connection_id_manager.h"
#include <cstddef>
#include <optional>
#include <string>
#include <vector>
#include "quiche/quic/core/frames/quic_retire_connection_id_frame.h"
#include "quiche/quic/core/quic_connection_id.h"
#include "quiche/quic/core/quic_error_codes.h"
#include "quiche/quic/platform/api/quic_flags.h"
#include "quiche/quic/platform/api/quic_test.h"
#include "quiche/quic/test_tools/mock_clock.h"
#include "quiche/quic/test_tools/mock_connection_id_generator.h"
#include "quiche/quic/test_tools/quic_connection_id_manager_peer.h"
#include "quiche/quic/test_tools/quic_test_utils.h"
namespace quic::test {
namespace {
IsError;
IsQuicNoError;
QuicConnectionIdManagerPeer;
TestConnectionId;
_;
ElementsAre;
IsNull;
Return;
StrictMock;
class TestPeerIssuedConnectionIdManagerVisitor
: public QuicConnectionIdManagerVisitorInterface { … };
class QuicPeerIssuedConnectionIdManagerTest : public QuicTest { … };
TEST_F(QuicPeerIssuedConnectionIdManagerTest,
ConnectionIdSequenceWhenMigrationSucceed) { … }
TEST_F(QuicPeerIssuedConnectionIdManagerTest,
ConnectionIdSequenceWhenMigrationFail) { … }
TEST_F(QuicPeerIssuedConnectionIdManagerTest,
ReceivesNewConnectionIdOutOfOrder) { … }
TEST_F(QuicPeerIssuedConnectionIdManagerTest,
VisitedNewConnectionIdFrameIsIgnored) { … }
TEST_F(QuicPeerIssuedConnectionIdManagerTest,
ErrorWhenActiveConnectionIdLimitExceeded) { … }
TEST_F(QuicPeerIssuedConnectionIdManagerTest,
ErrorWhenTheSameConnectionIdIsSeenWithDifferentSequenceNumbers) { … }
TEST_F(QuicPeerIssuedConnectionIdManagerTest,
NewConnectionIdFrameWithTheSameSequenceNumberIsIgnored) { … }
TEST_F(QuicPeerIssuedConnectionIdManagerTest,
ErrorWhenThereAreTooManyGapsInIssuedConnectionIdSequenceNumbers) { … }
TEST_F(QuicPeerIssuedConnectionIdManagerTest, ReplaceConnectionId) { … }
class TestSelfIssuedConnectionIdManagerVisitor
: public QuicConnectionIdManagerVisitorInterface { … };
class QuicSelfIssuedConnectionIdManagerTest : public QuicTest { … };
MATCHER_P3(ExpectedNewConnectionIdFrame, connection_id, sequence_number,
retire_prior_to, "") { … }
TEST_F(QuicSelfIssuedConnectionIdManagerTest,
RetireSelfIssuedConnectionIdInOrder) { … }
TEST_F(QuicSelfIssuedConnectionIdManagerTest,
RetireSelfIssuedConnectionIdOutOfOrder) { … }
TEST_F(QuicSelfIssuedConnectionIdManagerTest,
ScheduleConnectionIdRetirementOneAtATime) { … }
TEST_F(QuicSelfIssuedConnectionIdManagerTest,
ScheduleMultipleConnectionIdRetirement) { … }
TEST_F(QuicSelfIssuedConnectionIdManagerTest,
AllExpiredConnectionIdsAreRetiredInOneBatch) { … }
TEST_F(QuicSelfIssuedConnectionIdManagerTest,
ErrorWhenRetireConnectionIdNeverIssued) { … }
TEST_F(QuicSelfIssuedConnectionIdManagerTest,
ErrorWhenTooManyConnectionIdWaitingToBeRetired) { … }
TEST_F(QuicSelfIssuedConnectionIdManagerTest, CannotIssueNewCidDueToVisitor) { … }
TEST_F(QuicSelfIssuedConnectionIdManagerTest,
CannotIssueNewCidUponRetireConnectionIdDueToVisitor) { … }
TEST_F(QuicSelfIssuedConnectionIdManagerTest,
DoNotIssueConnectionIdVoluntarilyIfOneHasIssuedForPerferredAddress) { … }
TEST_F(QuicSelfIssuedConnectionIdManagerTest,
RetireConnectionIdAfterConnectionIdCollisionIsFine) { … }
}
}