0
0
mirror of https://github.com/mongodb/mongo.git synced 2024-12-01 01:21:03 +01:00
mongodb/jstests/noPassthroughWithMongod/getmore_error.js

37 lines
1.1 KiB
JavaScript

// ensure errors in getmore are properly reported to users
var t = db.getmore_error;
for (var i = 0; i < 10; i++) {
t.insert({_id: i});
}
var cursor = t.find().batchSize(2); // 1 is a special case
// first batch (only one from OP_QUERY)
assert.eq(cursor.next(), {_id: 0});
assert.eq(cursor.next(), {_id: 1});
assert.eq(cursor.objsLeftInBatch(), 0);
// second batch (first from OP_GETMORE)
assert.eq(cursor.next(), {_id: 2});
assert.eq(cursor.next(), {_id: 3});
assert.eq(cursor.objsLeftInBatch(), 0);
/*
// QUERY_MIGRATION disabling this because it's hard to have a failpoint in 2 parallel
// systems
// make the next OP_GETMORE fail
assert.commandWorked(
db.adminCommand({configureFailPoint: 'getMoreError', mode: {times: 1}})
);
// attempt to get next batch should fail with a failpoint error
var error = assert.throws(function(){cursor.next();});
if (!error.search(/failpoint/))
assert(false, "got a non-failpoint error: " + error);
*/
// make sure we won't break other tests by breaking getmore for them
assert.eq(t.find().batchSize(2).itcount(), 10);