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