diff options
author | David Storch <david.storch@10gen.com> | 2016-07-18 21:32:00 -0400 |
---|---|---|
committer | David Storch <david.storch@10gen.com> | 2016-07-19 22:39:30 -0400 |
commit | 015f840701e270e42514e53a3def41d796d414a6 (patch) | |
tree | 0e63aaf091645ad1f3d460e279ef47fa7679621b /src/mongo/db/pipeline/accumulator_test.cpp | |
parent | 7e986cc77f121e3af9a5f1217e89913745fc07f9 (diff) | |
download | mongo-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.cpp | 6 |
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); } |