From c70c74a9e65226a5963b6ca617ccaa1f8ad5e0e6 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Tue, 12 Sep 2023 19:02:51 +0200 Subject: [PATCH] test: show more info on failure in test-cli-syntax-require.js Use spawnSyncAndExit() to show more info when the tes fails. PR-URL: https://github.com/nodejs/node/pull/49561 Reviewed-By: Moshe Atlow Reviewed-By: Ruy Adorno Reviewed-By: Rafael Gonzaga Reviewed-By: Nitzan Uziely --- test/sequential/test-cli-syntax-require.js | 37 +++++++++------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/test/sequential/test-cli-syntax-require.js b/test/sequential/test-cli-syntax-require.js index 055458ca8542b1..5572379f15bc97 100644 --- a/test/sequential/test-cli-syntax-require.js +++ b/test/sequential/test-cli-syntax-require.js @@ -1,8 +1,8 @@ 'use strict'; -const common = require('../common'); +require('../common'); const assert = require('assert'); -const { spawn } = require('child_process'); +const { spawnSyncAndExit } = require('../common/child_process'); const fixtures = require('../common/fixtures'); const node = process.execPath; @@ -17,25 +17,18 @@ const syntaxErrorRE = /^SyntaxError: \b/m; const preloadFile = fixtures.path('no-wrapper.js'); const file = fixtures.path('syntax', 'illegal_if_not_wrapped.js'); const args = [requireFlag, preloadFile, checkFlag, file]; - const cp = spawn(node, args); - - // No stdout should be produced - cp.stdout.on('data', common.mustNotCall('stdout data event')); - - const stderrBuffer = []; - cp.stderr.on('data', (chunk) => stderrBuffer.push(chunk)); - - cp.on('exit', common.mustCall((code, signal) => { - assert.strictEqual(code, 1); - assert.strictEqual(signal, null); - - const stderr = Buffer.concat(stderrBuffer).toString('utf-8'); - // stderr should have a syntax error message - assert.match(stderr, syntaxErrorRE); - - // stderr should include the filename - assert(stderr.startsWith(file), `${stderr} starts with ${file}`); - })); - + spawnSyncAndExit(node, args, { + status: 1, + signal: null, + trim: true, + stdout: '', + stderr(output) { + // stderr should have a syntax error message + assert.match(output, syntaxErrorRE); + + // stderr should include the filename + assert(output.startsWith(file), `${output} starts with ${file}`); + } + }); }); });