0
0
mirror of https://github.com/mongodb/mongo.git synced 2024-12-01 01:21:03 +01:00
mongodb/jstests/aggregation/bugs/server6045.js
David Storch 8758a5c7be SERVER-25038 add LiteParsedPipeline
This provides a way to do pre-parse validity checks. Full
parsing of the Pipeline must be done under the collection
lock, when the collation is known.
2016-10-03 16:13:51 -04:00

37 lines
1.1 KiB
JavaScript

/* @file : jstests/aggregation/bugs/server6045.js
*
* SERVER 6045 : aggregate cmd crashes server with empty pipeline argument
*
* This test validates part of SERVER 6045 ticket. Return errmsg upon blank
* document in pipeline. Previously blank documents in pipeline would cause
* server to crash
*/
/*
* 1) Grab aggdb
* 2) Empty aggdb
* 3) Populate aggdb
* 4) Run aggregate with an empty document as the pipeline, at the start of the
* pipeline, at the end of the pipeline, and in the middle of the pipeline
* 5) Assert that all four position return the expected error
*/
load('jstests/aggregation/extras/utils.js');
// Use aggdb
db = db.getSiblingDB('aggdb');
// Empty and fill aggdb
db.agg.drop();
db.agg.insert({key: "string", value: 17});
db.agg.insert({key: "yarn", value: 42});
// As pipeline
assertErrorCode(db.agg, [{}], 40323);
// Start of pipeline
assertErrorCode(db.agg, [{$project: {value: 1}}, {}], 40323);
// End of pipeline
assertErrorCode(db.agg, [{}, {$project: {value: 1}}], 40323);
// Middle of pipeline
assertErrorCode(db.agg, [{$project: {value: 1}}, {}, {$project: {value: 1}}], 40323);