diff options
Diffstat (limited to 'src/mongo/client/disable_streamable_rsm_flag_test.cpp')
-rw-r--r-- | src/mongo/client/disable_streamable_rsm_flag_test.cpp | 205 |
1 files changed, 105 insertions, 100 deletions
diff --git a/src/mongo/client/disable_streamable_rsm_flag_test.cpp b/src/mongo/client/disable_streamable_rsm_flag_test.cpp index 0cad97280d5..1ceda7ce401 100644 --- a/src/mongo/client/disable_streamable_rsm_flag_test.cpp +++ b/src/mongo/client/disable_streamable_rsm_flag_test.cpp @@ -26,103 +26,108 @@ * exception statement from all source files in the program, then also delete * it in the license file. */ - -#include "mongo/platform/basic.h" - -#include "mongo/client/replica_set_monitor.h" -#include "mongo/client/replica_set_monitor_params_gen.h" -#include "mongo/client/scanning_replica_set_monitor.h" -#include "mongo/client/streamable_replica_set_monitor.h" -#include "mongo/unittest/unittest.h" -#include "mongo/util/assert_util.h" - -namespace mongo { -namespace { - -class RSMDisableStreamableFlagTestFixture : public unittest::Test { -protected: - void setUp() { - setGlobalServiceContext(ServiceContext::make()); - ReplicaSetMonitor::cleanup(); - } - - void tearDown() { - unsetParameter(); - } - - /** - * Sets the data of the disableStreamableReplicaSetMonitor parameter to flagValue. - */ - void setParameter(bool flagValue) { - const BSONObj newFlagParameter = BSON(kDisableStreamableFlagName << flagValue); - BSONObjIterator parameterIterator(newFlagParameter); - BSONElement newParameter = parameterIterator.next(); - const auto foundParameter = findDisableStreamableServerParameter(); - - uassertStatusOK(foundParameter->second->set(newParameter)); - ASSERT_EQ(flagValue, disableStreamableReplicaSetMonitor.load()); - } - - /** - * Restores the disableStreamableReplicaSetMonitor parameter to its default value. - */ - void unsetParameter() { - const auto defaultParameter = kDefaultParameter[kDisableStreamableFlagName]; - const auto foundParameter = findDisableStreamableServerParameter(); - - uassertStatusOK(foundParameter->second->set(defaultParameter)); - } - - /** - * Finds the disableStreamableReplicaSetMonitor ServerParameter. - */ - ServerParameter::Map::const_iterator findDisableStreamableServerParameter() { - const ServerParameter::Map& parameterMap = ServerParameterSet::getGlobal()->getMap(); - return parameterMap.find(kDisableStreamableFlagName); - } - - static inline const std::string kDisableStreamableFlagName = - "disableStreamableReplicaSetMonitor"; - - /** - * A BSONObj containing the default for the disableStreamableReplicaSetMonitor flag. - */ - static inline const BSONObj kDefaultParameter = - BSON(kDisableStreamableFlagName << disableStreamableReplicaSetMonitor.load()); -}; - -/** - * Checks that a ScanningReplicaSetMonitor is created when the disableStreamableReplicaSetMonitor - * flag is set to true. - */ -TEST_F(RSMDisableStreamableFlagTestFixture, checkIsScanningIfDisableStreamableIsTrue) { - setParameter(true); - auto uri = MongoURI::parse("mongodb://a,b,c/?replicaSet=name"); - ASSERT_OK(uri.getStatus()); - auto createdMonitor = ReplicaSetMonitor::createIfNeeded(uri.getValue()); - - // If the created monitor does not point to a ScanningReplicaSetMonitor, the cast returns a - // nullptr. - auto scanningMonitorCast = dynamic_cast<ScanningReplicaSetMonitor*>(createdMonitor.get()); - ASSERT(scanningMonitorCast); - - auto streamableMonitorCast = dynamic_cast<StreamableReplicaSetMonitor*>(createdMonitor.get()); - ASSERT_FALSE(streamableMonitorCast); -} - -/** - * Checks that a StreamableReplicaSetMonitor is created when the the - * disableStreamableReplicaSetMonitor flag is set to false. - * - * TODO SERVER-43332: Once the StreamableReplicaSetMonitor is integrated into the codebase, this - * test should mirror the logic in checkIsScanningIfDisableStreamableIsTrue accordingly. - */ -TEST_F(RSMDisableStreamableFlagTestFixture, checkIsStreamableIfDisableStreamableIsFalse) { - setParameter(false); - auto uri = MongoURI::parse("mongodb://a,b,c/?replicaSet=name"); - ASSERT_OK(uri.getStatus()); - ASSERT_THROWS_CODE(ReplicaSetMonitor::createIfNeeded(uri.getValue()), DBException, 31451); -} - -} // namespace -} // namespace mongo +// +//#include "mongo/platform/basic.h" +// +//#include "mongo/client/replica_set_monitor.h" +//#include "mongo/client/replica_set_monitor_params_gen.h" +//#include "mongo/client/scanning_replica_set_monitor.h" +//#include "mongo/client/streamable_replica_set_monitor.h" +//#include "mongo/unittest/unittest.h" +//#include "mongo/util/assert_util.h" +// +//namespace mongo { +//namespace { +// +//class RSMDisableStreamableFlagTestFixture : public unittest::Test { +//protected: +// void setUp() { +// setGlobalServiceContext(ServiceContext::make()); +// ReplicaSetMonitor::cleanup(); +// } +// +// void tearDown() { +// unsetParameter(); +// } +// +// /** +// * Sets the data of the disableStreamableReplicaSetMonitor parameter to flagValue. +// */ +// void setParameter(bool flagValue) { +// const BSONObj newFlagParameter = BSON(kDisableStreamableFlagName << flagValue); +// BSONObjIterator parameterIterator(newFlagParameter); +// BSONElement newParameter = parameterIterator.next(); +// const auto foundParameter = findDisableStreamableServerParameter(); +// +// uassertStatusOK(foundParameter->second->set(newParameter)); +// ASSERT_EQ(flagValue, disableStreamableReplicaSetMonitor.load()); +// } +// +// /** +// * Restores the disableStreamableReplicaSetMonitor parameter to its default value. +// */ +// void unsetParameter() { +// const auto defaultParameter = kDefaultParameter[kDisableStreamableFlagName]; +// const auto foundParameter = findDisableStreamableServerParameter(); +// +// uassertStatusOK(foundParameter->second->set(defaultParameter)); +// } +// +// /** +// * Finds the disableStreamableReplicaSetMonitor ServerParameter. +// */ +// ServerParameter::Map::const_iterator findDisableStreamableServerParameter() { +// const ServerParameter::Map& parameterMap = ServerParameterSet::getGlobal()->getMap(); +// invariant(parameterMap.size()); +// return parameterMap.find(kDisableStreamableFlagName); +// } +// +// static inline const std::string kDisableStreamableFlagName = +// "disableStreamableReplicaSetMonitor"; +// +// /** +// * A BSONObj containing the default for the disableStreamableReplicaSetMonitor flag. +// */ +// const BSONObj kDefaultParameter = +// BSON(kDisableStreamableFlagName << disableStreamableReplicaSetMonitor.load()); +//}; +// +///** +// * Checks that a StreamableReplicaSetMonitor is created when the the +// * disableStreamableReplicaSetMonitor flag is set to false. +// */ +//TEST_F(RSMDisableStreamableFlagTestFixture, checkIsStreamableIfDisableStreamableIsFalse) { +// setParameter(false); +// auto uri = MongoURI::parse("mongodb://a,b,c/?replicaSet=name"); +// ASSERT_OK(uri.getStatus()); +// auto createdMonitor = ReplicaSetMonitor::createIfNeeded(uri.getValue()); +// +// // If the created monitor does not point to a ScanningReplicaSetMonitor, the cast returns a +// // nullptr. +// auto streamableMonitorCast = dynamic_cast<StreamableReplicaSetMonitor*>(createdMonitor.get()); +// ASSERT(streamableMonitorCast); +// +// auto scanningMonitorCast = dynamic_cast<ScanningReplicaSetMonitor*>(createdMonitor.get()); +// ASSERT_FALSE(scanningMonitorCast); +//} +// +///** +// * Checks that a ScanningReplicaSetMonitor is created when the disableStreamableReplicaSetMonitor +// * flag is set to true. +// */ +//TEST_F(RSMDisableStreamableFlagTestFixture, checkIsScanningIfDisableStreamableIsTrue) { +// setParameter(true); +// auto uri = MongoURI::parse("mongodb://a,b,c/?replicaSet=name"); +// ASSERT_OK(uri.getStatus()); +// auto createdMonitor = ReplicaSetMonitor::createIfNeeded(uri.getValue()); +// +// // If the created monitor does not point to a ScanningReplicaSetMonitor, the cast returns a +// // nullptr. +// auto scanningMonitorCast = dynamic_cast<ScanningReplicaSetMonitor*>(createdMonitor.get()); +// ASSERT(scanningMonitorCast); +// +// auto streamableMonitorCast = dynamic_cast<StreamableReplicaSetMonitor*>(createdMonitor.get()); +// ASSERT_FALSE(streamableMonitorCast); +//} +//} // namespace +//} // namespace mongo |