From 309ef81268c14c0e4a29ebcccce4d8bf7bc2c586 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Thu, 7 Sep 2023 22:02:28 +0200 Subject: [PATCH] test: use spawnSyncAndExitWithoutError in test/common/sea.js To display more information when the command fails. PR-URL: https://github.com/nodejs/node/pull/49543 Refs: https://github.com/nodejs/reliability/issues/658 Reviewed-By: Darshan Sen Reviewed-By: Yagiz Nizipli --- test/common/sea.js | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/test/common/sea.js b/test/common/sea.js index bb337f176f2cc2..cc1890a5464012 100644 --- a/test/common/sea.js +++ b/test/common/sea.js @@ -4,7 +4,9 @@ const common = require('../common'); const fixtures = require('../common/fixtures'); const { readFileSync } = require('fs'); -const { execFileSync } = require('child_process'); +const { + spawnSyncAndExitWithoutError, +} = require('../common/child_process'); function skipIfSingleExecutableIsNotSupported() { if (!process.config.variables.single_executable_application) @@ -45,38 +47,39 @@ function skipIfSingleExecutableIsNotSupported() { function injectAndCodeSign(targetExecutable, resource) { const postjectFile = fixtures.path('postject-copy', 'node_modules', 'postject', 'dist', 'cli.js'); - execFileSync(process.execPath, [ + spawnSyncAndExitWithoutError(process.execPath, [ postjectFile, targetExecutable, 'NODE_SEA_BLOB', resource, '--sentinel-fuse', 'NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2', ...process.platform === 'darwin' ? [ '--macho-segment-name', 'NODE_SEA' ] : [], - ]); + ], {}); if (process.platform === 'darwin') { - execFileSync('codesign', [ '--sign', '-', targetExecutable ]); - execFileSync('codesign', [ '--verify', targetExecutable ]); + spawnSyncAndExitWithoutError('codesign', [ '--sign', '-', targetExecutable ], {}); + spawnSyncAndExitWithoutError('codesign', [ '--verify', targetExecutable ], {}); } else if (process.platform === 'win32') { let signtoolFound = false; try { - execFileSync('where', [ 'signtool' ]); + spawnSyncAndExitWithoutError('where', [ 'signtool' ], {}); signtoolFound = true; } catch (err) { console.log(err.message); } if (signtoolFound) { let certificatesFound = false; + let stderr; try { - execFileSync('signtool', [ 'sign', '/fd', 'SHA256', targetExecutable ]); + ({ stderr } = spawnSyncAndExitWithoutError('signtool', [ 'sign', '/fd', 'SHA256', targetExecutable ], {})); certificatesFound = true; } catch (err) { - if (!/SignTool Error: No certificates were found that met all the given criteria/.test(err)) { + if (!/SignTool Error: No certificates were found that met all the given criteria/.test(stderr)) { throw err; } } if (certificatesFound) { - execFileSync('signtool', 'verify', '/pa', 'SHA256', targetExecutable); + spawnSyncAndExitWithoutError('signtool', 'verify', '/pa', 'SHA256', targetExecutable, {}); } } }