current commit
260912.8 · lib: put node:bench behind an --experimental-bench flag
// Flags: --experimental-bench --no-warnings
'use strict';

const common = require('../common');
const { completeSample } = require('../common/bench');
const assert = require('assert');
const { bench, run } = require('node:bench');

let invocations = 0;
const timeout = common.platformTimeout(1000);
bench('overridden', { samples: 8, timeout, warmup: 8 }, (b) => {
  invocations++;
  completeSample(b, invocations);
});

const plans = [];
const samples = [];
const types = [];
const stream = run({
  samples: 2,
  warmup: 3,
  yieldBetweenSamples: false,
});
stream.on('bench:plan', (plan) => plans.push(plan));
stream.on('bench:sample', ({ operations }) => samples.push(operations));
stream.on('data', ({ type }) => types.push(type));
stream.on('end', common.mustCall(() => {
  assert.strictEqual(plans.length, 1);
  assert.deepStrictEqual({
    samples: plans[0].samples,
    selected: plans[0].selected,
    skip: plans[0].skip,
    timeout: plans[0].timeout,
    warmup: plans[0].warmup,
    yieldBetweenSamples: plans[0].yieldBetweenSamples,
  }, {
    samples: 2,
    selected: true,
    skip: undefined,
    timeout,
    warmup: 3,
    yieldBetweenSamples: false,
  });
  assert.deepStrictEqual(samples, [4, 5]);
  assert.deepStrictEqual(types.slice(0, 2), ['bench:plan', 'bench:start']);
}));
stream.resume();