mirror of
https://github.com/mongodb/mongo.git
synced 2024-12-01 01:21:03 +01:00
37 lines
1.1 KiB
JavaScript
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);
|