• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3// Check that spawn child doesn't create duplicated entries
4const common = require('../common');
5const kRepetitions = 2;
6const assert = require('assert');
7const fixtures = require('../common/fixtures');
8const { promisify, debuglog } = require('util');
9const debug = debuglog('test');
10
11const { execFile } = require('child_process');
12const execFilePromise = promisify(execFile);
13const targetScript = fixtures.path('guess-hash-seed.js');
14
15const requiredCallback = common.mustCall((results) => {
16  const seeds = results.map((val) => val.stdout.trim());
17  debug(`Seeds: ${seeds}`);
18  assert.strictEqual(new Set(seeds).size, seeds.length);
19  assert.strictEqual(seeds.length, kRepetitions);
20});
21
22const generateSeed = () => execFilePromise(process.execPath, [targetScript]);
23const subprocesses = [...new Array(kRepetitions)].map(generateSeed);
24
25Promise.all(subprocesses)
26  .then(requiredCallback);
27