diff options
Diffstat (limited to 'src/mongo/db/pipeline/resharding_initial_split_policy_test.cpp')
-rw-r--r-- | src/mongo/db/pipeline/resharding_initial_split_policy_test.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/mongo/db/pipeline/resharding_initial_split_policy_test.cpp b/src/mongo/db/pipeline/resharding_initial_split_policy_test.cpp index 74864fe8856..4e49d30e355 100644 --- a/src/mongo/db/pipeline/resharding_initial_split_policy_test.cpp +++ b/src/mongo/db/pipeline/resharding_initial_split_policy_test.cpp @@ -31,6 +31,7 @@ #include "mongo/db/pipeline/document_source_mock.h" #include "mongo/db/pipeline/sharded_agg_helpers.h" #include "mongo/db/s/config/initial_split_policy.h" +#include "mongo/idl/server_parameter_test_util.h" #include "mongo/logv2/log.h" #include "mongo/s/query/sharded_agg_test_fixture.h" #include "mongo/unittest/unittest.h" @@ -230,7 +231,6 @@ TEST_F(ReshardingSplitPolicyTest, CompoundShardKeyWithDottedPathAndIdIsProjected TEST_F(ReshardingSplitPolicyTest, CompoundShardKeyWithDottedHashedPathSucceeds) { auto shardKeyPattern = ShardKeyPattern(BSON("_id.a" << 1 << "b" << 1 << "_id.b" << "hashed")); - auto pipeline = Pipeline::parse(ReshardingSplitPolicy::createRawPipeline( shardKeyPattern, 2 /* samplingRatio */, 1 /* numSplitPoints */), @@ -247,5 +247,27 @@ TEST_F(ReshardingSplitPolicyTest, CompoundShardKeyWithDottedHashedPathSucceeds) BSON("_id.a" << 20 << "b" << 1 << "_id.b" << 2598032665634823220LL)); ASSERT(!pipeline->getNext()); } + +TEST_F(ReshardingSplitPolicyTest, ReshardingSucceedsWithLimitedMemoryForSortOperation) { + RAIIServerParameterControllerForTest sortMaxMemory{ + "internalQueryMaxBlockingSortMemoryUsageBytes", 100}; + auto shardKeyPattern = ShardKeyPattern(BSON("a" << 1)); + const NamespaceString ns("reshard", "foo"); + auto pipelineDocSource = + ReshardingSplitPolicy::makePipelineDocumentSource_forTest(operationContext(), + kTestAggregateNss, + shardKeyPattern, + 3 /*numInitialChunks*/, + 2 /*samplesPerChunk*/); + auto mockSource = DocumentSourceMock::createForTest( + {"{_id: 20, a: 4}", "{_id: 30, a: 3}", "{_id: 40, a: 2}", "{_id: 50, a: 1}"}, expCtx()); + pipelineDocSource->getPipeline_forTest()->addInitialSource(mockSource.get()); + auto next = pipelineDocSource->getNext(); + ASSERT_BSONOBJ_EQ(BSON("a" << 2), next.value()); + next = pipelineDocSource->getNext(); + ASSERT_BSONOBJ_EQ(BSON("a" << 4), next.value()); + ASSERT(!pipelineDocSource->getNext()); +} + } // namespace } // namespace mongo |