| 'use strict'; |
| |
| // Check that spawn child doesn't create duplicated entries |
| require('../common'); |
| const Countdown = require('../common/countdown'); |
| const REPETITIONS = 2; |
| const assert = require('assert'); |
| const fixtures = require('../common/fixtures'); |
| const { spawn } = require('child_process'); |
| const targetScript = fixtures.path('guess-hash-seed.js'); |
| const seeds = []; |
| |
| const requiredCallback = () => { |
| console.log(`Seeds: ${seeds}`); |
| assert.strictEqual(new Set(seeds).size, seeds.length); |
| assert.strictEqual(seeds.length, REPETITIONS); |
| }; |
| |
| const countdown = new Countdown(REPETITIONS, requiredCallback); |
| |
| for (let i = 0; i < REPETITIONS; ++i) { |
| let result = ''; |
| const subprocess = spawn(process.execPath, [targetScript]); |
| subprocess.stdout.setEncoding('utf8'); |
| subprocess.stdout.on('data', (data) => { result += data; }); |
| |
| subprocess.on('exit', () => { |
| seeds.push(result.trim()); |
| countdown.dec(); |
| }); |
| } |