text: '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);
  }
  