diff --git a/lib/entry-points.js b/lib/entry-points.js index 2f9741b59..2a2537cf5 100644 --- a/lib/entry-points.js +++ b/lib/entry-points.js @@ -183536,7 +183536,7 @@ ${stderr}`); return void 0; } } -async function xcodeVersionFromSdk(logger2) { +async function xcodeSdkVersion(logger2) { try { const xcrun = await io4.which("xcrun", true); let stdout = ""; @@ -183577,7 +183577,9 @@ ${stderr}`); } return version; } catch (err) { - logger2.debug(`Unable to determine Xcode version: ${getErrorMessage(err)}`); + logger2.debug( + `Unable to determine Xcode SDK version: ${getErrorMessage(err)}` + ); return void 0; } } @@ -194121,7 +194123,7 @@ async function checkRunnerSupportsTracedAnalysis(action, config, codeql) { ); return; } - const xcodeVer = xcodeVersionFromLink(action.logger) ?? await xcodeVersionFromXcodeBuild(action.logger) ?? await xcodeVersionFromSdk(action.logger); + const xcodeVer = xcodeVersionFromLink(action.logger) ?? await xcodeVersionFromXcodeBuild(action.logger) ?? await xcodeSdkVersion(action.logger); if (xcodeVer !== void 0 && xcodeVer.major >= UNSUPPORTED_XCODE_FOR_TRACED) { handleUnsupportedVersion( action.logger, diff --git a/src/languages/traced.test.ts b/src/languages/traced.test.ts index 250295ebf..08d529108 100644 --- a/src/languages/traced.test.ts +++ b/src/languages/traced.test.ts @@ -498,7 +498,7 @@ test.serial( checkExpectedLogMessages(t, logger.messages, [ "Unable to determine Xcode version: Not found", "Unable to determine Xcode version from xcodebuild: Error to force next fallback", - "Unable to determine Xcode version: Error to force next fallback", + "Unable to determine Xcode SDK version: Error to force next fallback", ]); checkUnexpectedLogMessages(t, logger.messages, [ "Traced analysis is not supported on Xcode 27", diff --git a/src/languages/traced.ts b/src/languages/traced.ts index 090068e49..08b886376 100644 --- a/src/languages/traced.ts +++ b/src/languages/traced.ts @@ -10,7 +10,7 @@ import { Feature } from "../feature-flags"; import { darwinVersion, xcodeVersionFromLink, - xcodeVersionFromSdk, + xcodeSdkVersion, xcodeVersionFromXcodeBuild, } from "../platform"; import { ConfigurationError } from "../util"; @@ -208,7 +208,7 @@ export async function checkRunnerSupportsTracedAnalysis( const xcodeVer = xcodeVersionFromLink(action.logger) ?? (await xcodeVersionFromXcodeBuild(action.logger)) ?? - (await xcodeVersionFromSdk(action.logger)); + (await xcodeSdkVersion(action.logger)); if ( xcodeVer !== undefined && diff --git a/src/platform.test.ts b/src/platform.test.ts index a0d2d34bf..e69614202 100644 --- a/src/platform.test.ts +++ b/src/platform.test.ts @@ -12,7 +12,7 @@ import { darwinVersion, XCODE_SELECT_LINK_PATH, xcodeVersionFromLink, - xcodeVersionFromSdk, + xcodeSdkVersion, xcodeVersionFromXcodeBuild, } from "./platform"; import { @@ -298,7 +298,7 @@ test.serial( ); test.serial( - "xcodeVersionFromSdk returns undefined for non-zero exit code", + "xcodeSdkVersion returns undefined for non-zero exit code", async (t) => { const logger = new RecordingLogger(); @@ -308,7 +308,7 @@ test.serial( const toolrunnerStub = sinon.stub(toolrunner, "ToolRunner").returns(runner); await t.notThrowsAsync(async () => { - const result = await xcodeVersionFromSdk(logger); + const result = await xcodeSdkVersion(logger); t.is(result, undefined); @@ -325,41 +325,38 @@ test.serial( }, ); -test.serial( - "xcodeVersionFromSdk extracts version from xcrun stdout", - async (t) => { - const logger = new RecordingLogger(); +test.serial("xcodeSdkVersion extracts version from xcrun stdout", async (t) => { + const logger = new RecordingLogger(); - const which = sinon.stub(io, "which").resolves("/path/to/xcrun"); + const which = sinon.stub(io, "which").resolves("/path/to/xcrun"); - let stdoutListener: ((data: Buffer) => void) | undefined = undefined; - const exec = sinon.stub<[], Promise>().callsFake(async () => { - if (stdoutListener !== undefined) { - stdoutListener(Buffer.from("26.5")); - } - return 0; + let stdoutListener: ((data: Buffer) => void) | undefined = undefined; + const exec = sinon.stub<[], Promise>().callsFake(async () => { + if (stdoutListener !== undefined) { + stdoutListener(Buffer.from("26.5")); + } + return 0; + }); + const runner = sinon.createStubInstance(toolrunner.ToolRunner, { exec }); + + const toolrunnerStub = sinon + .stub(toolrunner, "ToolRunner") + .callsFake((_cmd, _args, opts: ExecOptions) => { + stdoutListener = opts.listeners?.stdout; + return runner; }); - const runner = sinon.createStubInstance(toolrunner.ToolRunner, { exec }); - const toolrunnerStub = sinon - .stub(toolrunner, "ToolRunner") - .callsFake((_cmd, _args, opts: ExecOptions) => { - stdoutListener = opts.listeners?.stdout; - return runner; - }); + await t.notThrowsAsync(async () => { + const result = await xcodeSdkVersion(logger); - await t.notThrowsAsync(async () => { - const result = await xcodeVersionFromSdk(logger); + t.not(result, undefined); + t.is(result?.major, 26); + t.is(result?.minor, 5); - t.not(result, undefined); - t.is(result?.major, 26); - t.is(result?.minor, 5); + t.is(which.callCount, 1); + t.deepEqual(which.args[0], ["xcrun", true]); - t.is(which.callCount, 1); - t.deepEqual(which.args[0], ["xcrun", true]); - - t.is(toolrunnerStub.callCount, 1); - t.is(exec.callCount, 1); - }); - }, -); + t.is(toolrunnerStub.callCount, 1); + t.is(exec.callCount, 1); + }); +}); diff --git a/src/platform.ts b/src/platform.ts index ef66de300..283a789c0 100644 --- a/src/platform.ts +++ b/src/platform.ts @@ -186,12 +186,13 @@ export async function xcodeVersionFromXcodeBuild( } /** - * Tries to determine the version of Xcode that is installed by running `xcrun --sdk macosx --show-sdk-version`. + * Tries to determine the version of the Xcode SDK that is installed by running + * `xcrun --sdk macosx --show-sdk-version`. * * @param logger The logger to use. - * @returns The Xcode version or `undefined` if it couldn't be determined. + * @returns The Xcode SDK version or `undefined` if it couldn't be determined. */ -export async function xcodeVersionFromSdk( +export async function xcodeSdkVersion( logger: Logger, ): Promise { try { @@ -236,7 +237,9 @@ export async function xcodeVersionFromSdk( return version; } catch (err) { - logger.debug(`Unable to determine Xcode version: ${getErrorMessage(err)}`); + logger.debug( + `Unable to determine Xcode SDK version: ${getErrorMessage(err)}`, + ); return undefined; } }