summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/accumulator_test.cpp
diff options
context:
space:
mode:
authorDavid Storch <david.storch@10gen.com>2016-07-18 21:32:00 -0400
committerDavid Storch <david.storch@10gen.com>2016-07-19 22:39:30 -0400
commit015f840701e270e42514e53a3def41d796d414a6 (patch)
tree0e63aaf091645ad1f3d460e279ef47fa7679621b /src/mongo/db/pipeline/accumulator_test.cpp
parent7e986cc77f121e3af9a5f1217e89913745fc07f9 (diff)
downloadmongo-015f840701e270e42514e53a3def41d796d414a6.tar.gz
SERVER-23349 require a collator for Document::compare() and Value::compare()
Includes making aggregation $sort respect the collation.
Diffstat (limited to 'src/mongo/db/pipeline/accumulator_test.cpp')
-rw-r--r--src/mongo/db/pipeline/accumulator_test.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mongo/db/pipeline/accumulator_test.cpp b/src/mongo/db/pipeline/accumulator_test.cpp
index 8fad2b0095d..f903e897edc 100644
--- a/src/mongo/db/pipeline/accumulator_test.cpp
+++ b/src/mongo/db/pipeline/accumulator_test.cpp
@@ -49,11 +49,13 @@ static void assertExpectedResults(
std::string accumulator,
std::initializer_list<std::pair<std::vector<Value>, Value>> operations) {
auto factory = Accumulator::getFactory(accumulator);
+ intrusive_ptr<ExpressionContext> expCtx(new ExpressionContext());
for (auto&& op : operations) {
try {
// Asserts that result equals expected result when not sharded.
{
boost::intrusive_ptr<Accumulator> accum = factory();
+ accum->injectExpressionContext(expCtx);
for (auto&& val : op.first) {
accum->process(val, false);
}
@@ -65,7 +67,9 @@ static void assertExpectedResults(
// Asserts that result equals expected result when all input is on one shard.
{
boost::intrusive_ptr<Accumulator> accum = factory();
+ accum->injectExpressionContext(expCtx);
boost::intrusive_ptr<Accumulator> shard = factory();
+ shard->injectExpressionContext(expCtx);
for (auto&& val : op.first) {
shard->process(val, false);
}
@@ -78,8 +82,10 @@ static void assertExpectedResults(
// Asserts that result equals expected result when each input is on a separate shard.
{
boost::intrusive_ptr<Accumulator> accum = factory();
+ accum->injectExpressionContext(expCtx);
for (auto&& val : op.first) {
boost::intrusive_ptr<Accumulator> shard = factory();
+ shard->injectExpressionContext(expCtx);
shard->process(val, false);
accum->process(shard->getValue(true), true);
}