diff options
author | Max Hirschhorn <max.hirschhorn@mongodb.com> | 2021-03-08 22:59:33 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-03-09 00:48:17 +0000 |
commit | c67e7427ed4d94268b62f5322686e2af0bbaa9fa (patch) | |
tree | 62bd7abefa35a65c2a71e56bfbc5c6954860c14e /src/mongo/db/repl/primary_only_service_test_fixture.h | |
parent | 8ca55acd6ef2be43b8cc29bbe19d2845ab464105 (diff) | |
download | mongo-c67e7427ed4d94268b62f5322686e2af0bbaa9fa.tar.gz |
SERVER-54981 Create PrimaryOnlyServiceMongoDTest fixture.
Diffstat (limited to 'src/mongo/db/repl/primary_only_service_test_fixture.h')
-rw-r--r-- | src/mongo/db/repl/primary_only_service_test_fixture.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/mongo/db/repl/primary_only_service_test_fixture.h b/src/mongo/db/repl/primary_only_service_test_fixture.h new file mode 100644 index 00000000000..d8a386740c7 --- /dev/null +++ b/src/mongo/db/repl/primary_only_service_test_fixture.h @@ -0,0 +1,69 @@ +/** + * Copyright (C) 2021-present MongoDB, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the Server Side Public License, version 1, + * as published by MongoDB, Inc. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * Server Side Public License for more details. + * + * You should have received a copy of the Server Side Public License + * along with this program. If not, see + * <http://www.mongodb.com/licensing/server-side-public-license>. + * + * As a special exception, the copyright holders give permission to link the + * code of portions of this program with the OpenSSL library under certain + * conditions as described in each individual source file and distribute + * linked combinations including the program with the OpenSSL library. You + * must comply with the Server Side Public License in all respects for + * all of the code used other than as permitted herein. If you modify file(s) + * with this exception, you may extend this exception to your version of the + * file(s), but you are not obligated to do so. If you do not wish to do so, + * delete this exception statement from your version. If you delete this + * exception statement from all source files in the program, then also delete + * it in the license file. + */ + +#pragma once + +#include <memory> + +#include "mongo/db/service_context_d_test_fixture.h" + +namespace mongo { + +class OperationContext; +class OpObserverRegistry; +class ServiceContext; + +namespace repl { + +class PrimaryOnlyService; +class PrimaryOnlyServiceRegistry; + +class PrimaryOnlyServiceMongoDTest : public ServiceContextMongoDTest { +public: + virtual std::unique_ptr<repl::PrimaryOnlyService> makeService( + ServiceContext* serviceContext) = 0; + + void setUp() override; + void tearDown() override; + +protected: + void startup(OperationContext* opCtx); + void shutdown(); + + void stepUp(OperationContext* opCtx); + void stepDown(); + + OpObserverRegistry* _opObserverRegistry = nullptr; + repl::PrimaryOnlyServiceRegistry* _registry = nullptr; + repl::PrimaryOnlyService* _service = nullptr; + long long _term = 0; +}; + +} // namespace repl +} // namespace mongo |