From 61c245761cadbc0847f19b017b220e1d36cdcb42 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Sun, 29 Jun 2025 21:57:44 +0200 Subject: [PATCH] test: fix nan tests on macOS (#47583) --- script/nan-spec-runner.js | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/script/nan-spec-runner.js b/script/nan-spec-runner.js index 031062f4b355..2abdfe85e91f 100644 --- a/script/nan-spec-runner.js +++ b/script/nan-spec-runner.js @@ -46,20 +46,23 @@ async function main () { const platformFlags = []; if (process.platform === 'darwin') { const sdkPath = path.resolve(BASE, 'out', outDir, 'sdk', 'xcode_links'); - const sdks = (await fs.promises.readdir(sdkPath)).filter(fileName => fileName.endsWith('.sdk')); - const sdkToUse = sdks[0]; - if (!sdkToUse) { + const sdks = (await fs.promises.readdir(sdkPath)).filter(f => f.endsWith('.sdk')); + + if (!sdks.length) { console.error('Could not find an SDK to use for the NAN tests'); process.exit(1); } - if (sdks.length) { - console.warn(`Multiple SDKs found in the xcode_links directory - using ${sdkToUse}`); + const sdkToUse = sdks.sort((a, b) => { + const getVer = s => s.match(/(\d+)\.?(\d*)/)?.[0] || '0'; + return getVer(b).localeCompare(getVer(a), undefined, { numeric: true }); + })[0]; + + if (sdks.length > 1) { + console.warn(`Multiple SDKs found - using ${sdkToUse}`); } - platformFlags.push( - `-isysroot ${path.resolve(sdkPath, sdkToUse)}` - ); + platformFlags.push(`-isysroot ${path.resolve(sdkPath, sdkToUse)}`); } // TODO(ckerr) this is cribbed from read obj/electron/electron_app.ninja.