/** * Test that the server returns an error response for operations that attempt to create a non-capped * oplog collection. */ (function() { 'use strict'; var dbpath = MongoRunner.dataPath + 'noncapped_oplog_creation'; resetDbpath(dbpath); var conn = MongoRunner.runMongod({ dbpath: dbpath, noCleanData: true, }); assert.neq(null, conn, 'mongod was unable to start up'); var localDB = conn.getDB('local'); // Test that explicitly creating a non-capped oplog collection fails. assert.commandFailed(localDB.createCollection('oplog.fake', {capped: false})); // Test that inserting into the replica set oplog fails when implicitly creating a non-capped // collection. assert.writeError(localDB.oplog.rs.insert({})); // Test that inserting into the oplog fails when implicitly creating a non-capped // collection. assert.commandFailed(localDB.runCommand({godinsert: 'oplog.$main', obj: {}})); // Test that creating a non-capped oplog collection fails when using $out. assert.commandWorked(localDB.input.insert({})); assert.commandFailed(localDB.runCommand({ aggregate: 'input', pipeline: [{$out: 'oplog.aggregation'}], })); MongoRunner.stopMongod(conn); })();