Files
mongo/jstests/concurrency/fsm_libs/extend_workload.js
2015-01-09 09:40:24 -05:00

26 lines
936 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);
}