Files
mongo/jstests/concurrency/fsm_libs/extend_workload.js
2016-03-09 12:18:14 -05:00

27 lines
951 B
JavaScript

'use strict';
load('jstests/concurrency/fsm_libs/parse_config.js'); // for parseConfig
/** extendWorkload usage:
*
* $config = extendWorkload($config, function($config, $super) {
* // ... modify $config ...
* $config.foo = function() { // override a method
* $super.foo.call(this, arguments); // call super
* };
* return $config;
* });
*/
function extendWorkload($config, callback) {
assert.eq(2,
arguments.length,
'extendWorkload must be called with 2 arguments: $config and callback');
assert.eq('function', typeof callback, '2nd argument to extendWorkload must be a callback');
assert.eq(2,
callback.length,
'2nd argument to extendWorkload must take 2 arguments: $config and $super');
var parsedSuperConfig = parseConfig($config);
var childConfig = Object.extend({}, parsedSuperConfig, true);
return callback(childConfig, parsedSuperConfig);
}