benchmark: add test_runner/mock-fn
PR-URL: https://github.com/nodejs/node/pull/55771 Refs: https://github.com/nodejs/node/issues/55723 Reviewed-By: Pietro Marchini <pietro.marchini94@gmail.com> Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br>
This commit is contained in:
parent
c52c670ad4
commit
2d63dee446
48
benchmark/test_runner/mock-fn.js
Normal file
48
benchmark/test_runner/mock-fn.js
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
const common = require('../common');
|
||||||
|
const assert = require('node:assert');
|
||||||
|
const { test } = require('node:test');
|
||||||
|
|
||||||
|
const bench = common.createBenchmark(main, {
|
||||||
|
n: [1e6],
|
||||||
|
mode: ['define', 'execute'],
|
||||||
|
}, {
|
||||||
|
// We don't want to test the reporter here
|
||||||
|
flags: ['--test-reporter=./benchmark/fixtures/empty-test-reporter.js'],
|
||||||
|
});
|
||||||
|
|
||||||
|
const noop = () => {};
|
||||||
|
|
||||||
|
function benchmarkDefine(n) {
|
||||||
|
let noDead;
|
||||||
|
test((t) => {
|
||||||
|
bench.start();
|
||||||
|
for (let i = 0; i < n; i++) {
|
||||||
|
noDead = t.mock.fn(noop);
|
||||||
|
}
|
||||||
|
bench.end(n);
|
||||||
|
assert.ok(noDead);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function benchmarkExecute(n) {
|
||||||
|
let noDead;
|
||||||
|
test((t) => {
|
||||||
|
const mocked = t.mock.fn(noop);
|
||||||
|
bench.start();
|
||||||
|
for (let i = 0; i < n; i++) {
|
||||||
|
noDead = mocked();
|
||||||
|
}
|
||||||
|
bench.end(n);
|
||||||
|
assert.strictEqual(noDead, noop());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function main({ n, mode }) {
|
||||||
|
if (mode === 'define') {
|
||||||
|
benchmarkDefine(n);
|
||||||
|
} else if (mode === 'execute') {
|
||||||
|
benchmarkExecute(n);
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user