GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — test: use Promise.all() in test-hash-seed · nodejs/node@8dbd7cf

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
  • test/pummel
    • test-hash-seed.js
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎test/pummel/test-hash-seed.js‎

Copy file name to clipboard
+16-21Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,26 @@
11
'use strict';
22

33
// Check that spawn child doesn't create duplicated entries
4-
require('../common');
5-
const Countdown = require('../common/countdown');
6-
const REPETITIONS = 2;
4+
const common = require('../common');
5+
const kRepetitions = 2;
76
const assert = require('assert');
87
const fixtures = require('../common/fixtures');
9-
const { spawn } = require('child_process');
8+
const { promisify, debuglog } = require('util');
9+
const debug = debuglog('test');
10+
11+
const { execFile } = require('child_process');
12+
const execFilePromise = promisify(execFile);
1013
const targetScript = fixtures.path('guess-hash-seed.js');
11-
const seeds = [];
1214

13-
const requiredCallback = () => {
14-
console.log(`Seeds: ${seeds}`);
15+
const requiredCallback = common.mustCall((results) => {
16+
const seeds = results.map((val) => val.stdout.trim());
17+
debug(`Seeds: ${seeds}`);
1518
assert.strictEqual(new Set(seeds).size, seeds.length);
16-
assert.strictEqual(seeds.length, REPETITIONS);
17-
};
18-
19-
const countdown = new Countdown(REPETITIONS, requiredCallback);
19+
assert.strictEqual(seeds.length, kRepetitions);
20+
});
2021

21-
for (let i = 0; i < REPETITIONS; ++i) {
22-
let result = '';
23-
const subprocess = spawn(process.execPath, [targetScript]);
24-
subprocess.stdout.setEncoding('utf8');
25-
subprocess.stdout.on('data', (data) => { result += data; });
22+
const generateSeed = () => execFilePromise(process.execPath, [targetScript]);
23+
const subprocesses = [...new Array(kRepetitions)].map(generateSeed);
2624

27-
subprocess.on('exit', () => {
28-
seeds.push(result.trim());
29-
countdown.dec();
30-
});
31-
}
25+
Promise.all(subprocesses)
26+
.then(requiredCallback);

0 commit comments

Comments
0 (0)
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.