diff options
Diffstat (limited to 'jstests/concurrency/fsm_workloads/touch_base.js')
-rw-r--r-- | jstests/concurrency/fsm_workloads/touch_base.js | 88 |
1 files changed, 39 insertions, 49 deletions
diff --git a/jstests/concurrency/fsm_workloads/touch_base.js b/jstests/concurrency/fsm_workloads/touch_base.js index df419e17db7..d69b7c94b2e 100644 --- a/jstests/concurrency/fsm_workloads/touch_base.js +++ b/jstests/concurrency/fsm_workloads/touch_base.js @@ -12,52 +12,42 @@ load('jstests/concurrency/fsm_workloads/indexed_insert_where.js'); // for $conf // For isMongod, isMMAPv1, and isEphemeral. load('jstests/concurrency/fsm_workload_helpers/server_types.js'); -var $config = - extendWorkload($config, - function($config, $super) { - $config.data.generateDocumentToInsert = function generateDocumentToInsert() { - return { - tid: this.tid, - x: Random.randInt(10) - }; - }; - - $config.data.generateTouchCmdObj = function generateTouchCmdObj(collName) { - return { - touch: collName, - data: true, - index: true - }; - }; - - $config.states.touch = function touch(db, collName) { - var res = db.runCommand(this.generateTouchCmdObj(collName)); - if (isMongod(db) && (isMMAPv1(db) || isEphemeral(db))) { - assertAlways.commandWorked(res); - } else { - // SERVER-16850 and SERVER-16797 - assertAlways.commandFailed(res); - } - }; - - $config.states.query = function query(db, collName) { - var count = db[collName].find({tid: this.tid}).itcount(); - assertWhenOwnColl.eq( - count, - this.insertedDocuments, - 'collection scan should return the number of documents this thread' + - ' inserted'); - }; - - $config.transitions = { - insert: {insert: 0.2, touch: 0.4, query: 0.4}, - touch: {insert: 0.4, touch: 0.2, query: 0.4}, - query: {insert: 0.4, touch: 0.4, query: 0.2} - }; - - $config.setup = function setup(db, collName, cluster) { - assertAlways.commandWorked(db[collName].ensureIndex({x: 1})); - }; - - return $config; - }); +var $config = extendWorkload($config, function($config, $super) { + $config.data.generateDocumentToInsert = function generateDocumentToInsert() { + return {tid: this.tid, x: Random.randInt(10)}; + }; + + $config.data.generateTouchCmdObj = function generateTouchCmdObj(collName) { + return {touch: collName, data: true, index: true}; + }; + + $config.states.touch = function touch(db, collName) { + var res = db.runCommand(this.generateTouchCmdObj(collName)); + if (isMongod(db) && (isMMAPv1(db) || isEphemeral(db))) { + assertAlways.commandWorked(res); + } else { + // SERVER-16850 and SERVER-16797 + assertAlways.commandFailed(res); + } + }; + + $config.states.query = function query(db, collName) { + var count = db[collName].find({tid: this.tid}).itcount(); + assertWhenOwnColl.eq(count, + this.insertedDocuments, + 'collection scan should return the number of documents this thread' + + ' inserted'); + }; + + $config.transitions = { + insert: {insert: 0.2, touch: 0.4, query: 0.4}, + touch: {insert: 0.4, touch: 0.2, query: 0.4}, + query: {insert: 0.4, touch: 0.4, query: 0.2} + }; + + $config.setup = function setup(db, collName, cluster) { + assertAlways.commandWorked(db[collName].ensureIndex({x: 1})); + }; + + return $config; +}); |