summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/resharding_initial_split_policy_test.cpp
diff options
context:
space:
mode:
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.cpp24
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