runTest = async (n, test, next) => {
      if (global.gc && test.runGC) {
        global.gc()
      }

      if (typeof test.before === 'function') {
        test.before(agent)
      }

      if (agent && test.runInTransaction) {
        const inTransaction = (txn) => {
          const afterExecute = (execCallback) => {
            txn.end()
            return execCallback(txn)
          }
          return execute(test, next, afterExecute)
        }

        return helper.runInTransaction(agent, inTransaction)
      }

      return execute(test, next)
    }
`runTest` performs one execution of a benchmark test
@param {number} n Index of the test in the sequence of tests to be run
@param {object} test Test configuration as defined in the *.bench.js file for this suite
@param {function} next anonymous function defined in the `startTest` for loop;
  its second parameter is the delta between the current CPU usage and the previous CPU usage.
@returns {function} If this test is run in a transaction, this returns an invocation of
   helper.runInTransaction. Otherwise, this returns an invocation of `execute`.