• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// This benchmark is meant to exercise a grab bag of code paths that would
2// be expected to run slower under coverage.
3'use strict';
4
5const common = require('../common.js');
6const bench = common.createBenchmark(main, {
7  n: [1e5]
8});
9const path = require('path');
10const { rmSync } = require('fs');
11const { spawnSync } = require('child_process');
12const tmpdir = require('../../test/common/tmpdir');
13
14const coverageDir = path.join(tmpdir.path, `./cov-${Date.now()}`);
15
16function main({ n }) {
17  bench.start();
18  const result = spawnSync(process.execPath, [
19    require.resolve('../fixtures/coverage-many-branches'),
20  ], {
21    env: {
22      NODE_V8_COVERAGE: coverageDir,
23      N: n,
24      ...process.env
25    }
26  });
27  bench.end(n);
28  rmSync(coverageDir, { recursive: true, force: true });
29  if (result.status !== 0) {
30    throw new Error(result.stderr.toString('utf8'));
31  }
32}
33