diff --git a/test/parallel/test-crypto-key-store-pkcs11.js b/test/parallel/test-crypto-key-store-pkcs11.js index 971f4909166..0fec81a9c64 100644 --- a/test/parallel/test-crypto-key-store-pkcs11.js +++ b/test/parallel/test-crypto-key-store-pkcs11.js @@ -34,6 +34,7 @@ const { verify, } = require('crypto'); const tmpdir = require('../common/tmpdir'); +const { spawnSyncAndExitWithoutError } = require('../common/child_process'); const { subtle } = globalThis.crypto; const kData = Buffer.from( @@ -65,7 +66,7 @@ function softhsmOptions() { function runInChild() { const { cwd, env } = softhsmOptions(); - const child = spawnSync(process.execPath, [ + spawnSyncAndExitWithoutError(process.execPath, [ `--openssl-config=${kOpenSSLConfig}`, __filename, ], { @@ -73,7 +74,6 @@ function runInChild() { env: { ...process.env, ...env, NODE_TEST_PKCS11_CHILD: '1' }, stdio: 'inherit', }); - assert.strictEqual(child.status, 0); } function privateKeyUrl(label) { diff --git a/test/parallel/test-experimental-shared-value-conveyor.js b/test/parallel/test-experimental-shared-value-conveyor.js index 17eb32c66b1..123e212bd1d 100644 --- a/test/parallel/test-experimental-shared-value-conveyor.js +++ b/test/parallel/test-experimental-shared-value-conveyor.js @@ -1,8 +1,8 @@ 'use strict'; const common = require('../common'); const assert = require('assert'); -const { spawnSync } = require('child_process'); const { Worker, parentPort } = require('worker_threads'); +const { spawnSyncAndAssert } = require('../common/child_process'); if (process.env.TEST_CHILD_PROCESS === '1') { // Do not use isMainThread so that this test itself can be run inside a Worker. @@ -29,10 +29,10 @@ if (process.env.TEST_CHILD_PROCESS === '1') { const args = ['--harmony-struct', __filename]; const options = { env: { TEST_CHILD_PROCESS: '1', ...process.env } }; - const child = spawnSync(process.execPath, args, options); - assert.strictEqual(child.stderr.toString().trim(), ''); - assert.strictEqual(child.stdout.toString().trim(), ''); - assert.strictEqual(child.status, 0); - assert.strictEqual(child.signal, null); + spawnSyncAndAssert(process.execPath, args, options, { + stdout: '', + stderr: '', + trim: true + }); } diff --git a/test/parallel/test-heap-prof-basic.js b/test/parallel/test-heap-prof-basic.js index 34d8af9a784..4ddc313ff04 100644 --- a/test/parallel/test-heap-prof-basic.js +++ b/test/parallel/test-heap-prof-basic.js @@ -9,7 +9,7 @@ const fixtures = require('../common/fixtures'); common.skipIfInspectorDisabled(); const assert = require('assert'); -const { spawnSync } = require('child_process'); +const { spawnSyncAndExitWithoutError } = require('../common/child_process'); const tmpdir = require('../common/tmpdir'); @@ -20,18 +20,13 @@ const { { tmpdir.refresh(); - const output = spawnSync(process.execPath, [ + spawnSyncAndExitWithoutError(process.execPath, [ '--heap-prof', fixtures.path('workload', 'allocation.js'), ], { cwd: tmpdir.path, env }); - if (output.status !== 0) { - console.log(output.stderr.toString()); - console.log(output); - } - assert.strictEqual(output.status, 0); const profiles = getHeapProfiles(tmpdir.path); assert.strictEqual(profiles.length, 1); } diff --git a/test/parallel/test-heap-prof-exec-argv.js b/test/parallel/test-heap-prof-exec-argv.js index 02ad4430dba..186b4d5d631 100644 --- a/test/parallel/test-heap-prof-exec-argv.js +++ b/test/parallel/test-heap-prof-exec-argv.js @@ -9,7 +9,7 @@ const fixtures = require('../common/fixtures'); common.skipIfInspectorDisabled(); const assert = require('assert'); -const { spawnSync } = require('child_process'); +const { spawnSyncAndExitWithoutError } = require('../common/child_process'); const tmpdir = require('../common/tmpdir'); @@ -20,7 +20,7 @@ const { { tmpdir.refresh(); - const output = spawnSync(process.execPath, [ + const { child: output } = spawnSyncAndExitWithoutError(process.execPath, [ fixtures.path('workload', 'allocation-worker-argv.js'), ], { cwd: tmpdir.path, @@ -29,10 +29,6 @@ const { HEAP_PROF_INTERVAL: '128' } }); - if (output.status !== 0) { - console.log(output.stderr.toString()); - } - assert.strictEqual(output.status, 0); const profiles = getHeapProfiles(tmpdir.path); assert.strictEqual(profiles.length, 1); verifyFrames(output, profiles[0], 'runAllocation'); diff --git a/test/parallel/test-heap-prof-loop-drained.js b/test/parallel/test-heap-prof-loop-drained.js index d0fc4c98784..d8e07b33cb4 100644 --- a/test/parallel/test-heap-prof-loop-drained.js +++ b/test/parallel/test-heap-prof-loop-drained.js @@ -8,7 +8,7 @@ const fixtures = require('../common/fixtures'); common.skipIfInspectorDisabled(); const assert = require('assert'); -const { spawnSync } = require('child_process'); +const { spawnSyncAndExitWithoutError } = require('../common/child_process'); const tmpdir = require('../common/tmpdir'); @@ -21,7 +21,7 @@ const { { tmpdir.refresh(); - const output = spawnSync(process.execPath, [ + const { child: output } = spawnSyncAndExitWithoutError(process.execPath, [ '--heap-prof', '--heap-prof-interval', kHeapProfInterval, @@ -30,11 +30,6 @@ const { cwd: tmpdir.path, env }); - if (output.status !== 0) { - console.log(output.stderr.toString()); - console.log(output); - } - assert.strictEqual(output.status, 0); const profiles = getHeapProfiles(tmpdir.path); assert.strictEqual(profiles.length, 1); verifyFrames(output, profiles[0], 'runAllocation'); diff --git a/test/parallel/test-inspect-address-in-use.js b/test/parallel/test-inspect-address-in-use.js index d900fdfb679..bd954e4a7bc 100644 --- a/test/parallel/test-inspect-address-in-use.js +++ b/test/parallel/test-inspect-address-in-use.js @@ -2,7 +2,7 @@ const common = require('../common'); common.skipIfInspectorDisabled(); -const { spawnSync } = require('child_process'); +const { spawnSyncAndExit } = require('../common/child_process'); const { createServer } = require('http'); const assert = require('assert'); const tmpdir = require('../common/tmpdir'); @@ -25,19 +25,18 @@ function testOnServerListen(fn) { function testChildProcess(getArgs, exitCode, options) { testOnServerListen(common.mustCall((server) => { const { port } = server.address(); - const child = spawnSync(process.execPath, getArgs(port), options); - const stderr = child.stderr.toString().trim(); - const stdout = child.stdout.toString().trim(); - console.log('[STDERR]'); - console.log(stderr); - console.log('[STDOUT]'); - console.log(stdout); - const match = stderr.match( - /Starting inspector on 127\.0\.0\.1:(\d+) failed: address already in use/ - ); - assert.notStrictEqual(match, null); - assert.strictEqual(match[1], port + ''); - assert.strictEqual(child.status, exitCode); + spawnSyncAndExit(process.execPath, getArgs(port), options, { + status: exitCode, + signal: null, + trim: true, + stderr: function(str) { + const match = str.match( + /Starting inspector on 127\.0\.0\.1:(\d+) failed: address already in use/ + ); + assert.notStrictEqual(match, null); + assert.strictEqual(match[1], port + ''); + }, + }); })); } diff --git a/test/parallel/test-os-homedir-no-envvar.js b/test/parallel/test-os-homedir-no-envvar.js index 2f9b1b47a70..3a47d6d72c4 100644 --- a/test/parallel/test-os-homedir-no-envvar.js +++ b/test/parallel/test-os-homedir-no-envvar.js @@ -1,9 +1,9 @@ 'use strict'; const common = require('../common'); const assert = require('assert'); -const cp = require('child_process'); const os = require('os'); const path = require('path'); +const { spawnSyncAndExitWithoutError } = require('../common/child_process'); if (process.argv[2] === 'child') { @@ -22,9 +22,7 @@ if (process.argv[2] === 'child') { else delete process.env.HOME; - const child = cp.spawnSync(process.execPath, [__filename, 'child'], { + spawnSyncAndExitWithoutError(process.execPath, [__filename, 'child'], { env: process.env }); - - assert.strictEqual(child.status, 0); } diff --git a/test/parallel/test-process-execpath.js b/test/parallel/test-process-execpath.js index 0fce35e2645..53d8f39fbf7 100644 --- a/test/parallel/test-process-execpath.js +++ b/test/parallel/test-process-execpath.js @@ -4,7 +4,7 @@ if (common.isWindows) common.skip('symlinks are weird on windows'); const assert = require('assert'); -const child_process = require('child_process'); +const { spawnSyncAndAssert } = require('../common/child_process'); const fs = require('fs'); assert.strictEqual(process.execPath, fs.realpathSync(process.execPath)); @@ -19,8 +19,8 @@ if (process.argv[2] === 'child') { const symlinkedNode = tmpdir.resolve('symlinked-node'); fs.symlinkSync(process.execPath, symlinkedNode); - const proc = child_process.spawnSync(symlinkedNode, [__filename, 'child']); - assert.strictEqual(proc.stderr.toString(), ''); - assert.strictEqual(proc.stdout.toString(), `${process.execPath}\n`); - assert.strictEqual(proc.status, 0); + spawnSyncAndAssert(symlinkedNode, [__filename, 'child'], { + stdout: `${process.execPath}\n`, + stderr: '' + }); } diff --git a/test/parallel/test-runner-mock-timers-with-timeout.js b/test/parallel/test-runner-mock-timers-with-timeout.js index 67f266851fe..6d98e6e9479 100644 --- a/test/parallel/test-runner-mock-timers-with-timeout.js +++ b/test/parallel/test-runner-mock-timers-with-timeout.js @@ -1,14 +1,12 @@ 'use strict'; require('../common'); const fixtures = require('../common/fixtures'); -const assert = require('node:assert'); -const { spawnSync } = require('node:child_process'); +const { spawnSyncAndExitWithoutError } = require('../common/child_process'); const { test } = require('node:test'); test('mock timers do not break test timeout cleanup', async () => { const fixture = fixtures.path('test-runner', 'mock-timers-with-timeout.js'); - const cp = spawnSync(process.execPath, ['--test', fixture], { + spawnSyncAndExitWithoutError(process.execPath, ['--test', fixture], { timeout: 30_000, }); - assert.strictEqual(cp.status, 0, `Test failed:\nstdout: ${cp.stdout}\nstderr: ${cp.stderr}`); }); diff --git a/test/parallel/test-v8-stop-coverage.js b/test/parallel/test-v8-stop-coverage.js index e9764d60477..b37f8320abb 100644 --- a/test/parallel/test-v8-stop-coverage.js +++ b/test/parallel/test-v8-stop-coverage.js @@ -5,7 +5,7 @@ const fixtures = require('../common/fixtures'); const tmpdir = require('../common/tmpdir'); const assert = require('assert'); const fs = require('fs'); -const { spawnSync } = require('child_process'); +const { spawnSyncAndExitWithoutError } = require('../common/child_process'); common.skipIfInspectorDisabled(); @@ -13,7 +13,7 @@ tmpdir.refresh(); const intervals = 20; { - const output = spawnSync(process.execPath, [ + const { child } = spawnSyncAndExitWithoutError(process.execPath, [ '-r', fixtures.path('v8-coverage', 'stop-coverage'), '-r', @@ -27,8 +27,7 @@ const intervals = 20; TEST_INTERVALS: intervals }, }); - console.log(output.stderr.toString()); - assert.strictEqual(output.status, 0); + console.log(child.stderr.toString()); const coverageFiles = fs.readdirSync(tmpdir.path); assert.strictEqual(coverageFiles.length, 0); } diff --git a/test/parallel/test-v8-take-coverage-noop.js b/test/parallel/test-v8-take-coverage-noop.js index 8d49b0f2329..14bb8a2c3a9 100644 --- a/test/parallel/test-v8-take-coverage-noop.js +++ b/test/parallel/test-v8-take-coverage-noop.js @@ -5,7 +5,7 @@ const fixtures = require('../common/fixtures'); const tmpdir = require('../common/tmpdir'); const assert = require('assert'); const fs = require('fs'); -const { spawnSync } = require('child_process'); +const { spawnSyncAndExitWithoutError } = require('../common/child_process'); common.skipIfInspectorDisabled(); @@ -14,7 +14,7 @@ tmpdir.refresh(); // v8.takeCoverage() should be a noop if NODE_V8_COVERAGE is not set. const intervals = 40; { - const output = spawnSync(process.execPath, [ + const { child } = spawnSyncAndExitWithoutError(process.execPath, [ '-r', fixtures.path('v8-coverage', 'take-coverage'), fixtures.path('v8-coverage', 'interval'), @@ -25,8 +25,7 @@ const intervals = 40; TEST_INTERVALS: intervals }, }); - console.log(output.stderr.toString()); - assert.strictEqual(output.status, 0); + console.log(child.stderr.toString()); const coverageFiles = fs.readdirSync(tmpdir.path); assert.strictEqual(coverageFiles.length, 0); } diff --git a/test/parallel/test-v8-take-coverage.js b/test/parallel/test-v8-take-coverage.js index 6b1fe149e99..2119a30d6ad 100644 --- a/test/parallel/test-v8-take-coverage.js +++ b/test/parallel/test-v8-take-coverage.js @@ -5,7 +5,7 @@ const fixtures = require('../common/fixtures'); const tmpdir = require('../common/tmpdir'); const assert = require('assert'); const fs = require('fs'); -const { spawnSync } = require('child_process'); +const { spawnSyncAndExitWithoutError } = require('../common/child_process'); common.skipIfInspectorDisabled(); @@ -13,7 +13,7 @@ tmpdir.refresh(); const intervals = 40; // Outputs coverage when v8.takeCoverage() is invoked. { - const output = spawnSync(process.execPath, [ + const { child } = spawnSyncAndExitWithoutError(process.execPath, [ '-r', fixtures.path('v8-coverage', 'take-coverage'), fixtures.path('v8-coverage', 'interval'), @@ -25,8 +25,7 @@ const intervals = 40; TEST_INTERVALS: intervals }, }); - console.log(output.stderr.toString()); - assert.strictEqual(output.status, 0); + console.log(child.stderr.toString()); const coverageFiles = fs.readdirSync(tmpdir.path); let coverages = [];