From 40d2a26bb3c390a351deaa0decf9921e55ce9094 Mon Sep 17 00:00:00 2001 From: "Brett V. Forsgren" Date: Wed, 20 May 2026 12:22:05 -0600 Subject: [PATCH] handle errant whitespace in global.json --- nuget/updater/common.ps1 | 2 +- .../global-json-whitespace/leading-comment/global.json | 6 ++++++ .../global-json-whitespace/leading-newline/global.json | 6 ++++++ .../leading-whitespace/global.json | 5 +++++ nuget/updater/test.ps1 | 9 +++++++++ 5 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 nuget/updater/test-data/global-json-whitespace/leading-comment/global.json create mode 100644 nuget/updater/test-data/global-json-whitespace/leading-newline/global.json create mode 100644 nuget/updater/test-data/global-json-whitespace/leading-whitespace/global.json diff --git a/nuget/updater/common.ps1 b/nuget/updater/common.ps1 index 85fd681a5d8..6a70a226f58 100755 --- a/nuget/updater/common.ps1 +++ b/nuget/updater/common.ps1 @@ -17,7 +17,7 @@ function Get-SdkVersionsToInstall([string] $repoRoot, [string[]] $updateDirector foreach ($globalJsonPath in $globalJsonPaths) { $resolvedGlobalJsonPath = Convert-Path "$repoRoot/$globalJsonPath" Write-LogMessage " Processing $globalJsonPath (resolved to $resolvedGlobalJsonPath) for SDK version information" - $globalJson = Get-Content $resolvedGlobalJsonPath | ConvertFrom-Json + $globalJson = Get-Content $resolvedGlobalJsonPath -Raw | ConvertFrom-Json if (@($globalJson.PSobject.Properties).Count -eq 0) { Write-LogMessage " No properties found in $globalJsonPath, skipping" continue diff --git a/nuget/updater/test-data/global-json-whitespace/leading-comment/global.json b/nuget/updater/test-data/global-json-whitespace/leading-comment/global.json new file mode 100644 index 00000000000..5299b7403cf --- /dev/null +++ b/nuget/updater/test-data/global-json-whitespace/leading-comment/global.json @@ -0,0 +1,6 @@ +// this is a leading comment +{ + "sdk": { + "version": "1.2.3-leading-comment" + } +} diff --git a/nuget/updater/test-data/global-json-whitespace/leading-newline/global.json b/nuget/updater/test-data/global-json-whitespace/leading-newline/global.json new file mode 100644 index 00000000000..3fd0b157293 --- /dev/null +++ b/nuget/updater/test-data/global-json-whitespace/leading-newline/global.json @@ -0,0 +1,6 @@ + +{ + "sdk": { + "version": "1.2.3-leading-newline" + } +} diff --git a/nuget/updater/test-data/global-json-whitespace/leading-whitespace/global.json b/nuget/updater/test-data/global-json-whitespace/leading-whitespace/global.json new file mode 100644 index 00000000000..e0705eef35e --- /dev/null +++ b/nuget/updater/test-data/global-json-whitespace/leading-whitespace/global.json @@ -0,0 +1,5 @@ + { + "sdk": { + "version": "1.2.3-leading-whitespace" + } +} diff --git a/nuget/updater/test.ps1 b/nuget/updater/test.ps1 index ecdacee6abe..6ba833f6d7d 100755 --- a/nuget/updater/test.ps1 +++ b/nuget/updater/test.ps1 @@ -3,6 +3,9 @@ $ErrorActionPreference = "Stop" . $PSScriptRoot\common.ps1 +# uncomment line to enable detailed test logging +#$env:DEPENDABOT_LOG_MESSAGES = "true" + function Assert-ArraysEqual([string[]]$expected, [string[]]$actual) { $expectedText = $expected -join ", " $actualText = $actual -join ", " @@ -102,6 +105,12 @@ try { -installedSdks @("8.0.404") ` -expectedSdksToInstall @("9.0") + Test-GlobalJsonVersions ` + -testDirectory "global-json-whitespace" ` + -directories @("/leading-comment", "/leading-newline", "/leading-whitespace") ` + -installedSdks @("8.0.404") ` + -expectedSdksToInstall @("1.2.3-leading-comment", "1.2.3-leading-newline", "1.2.3-leading-whitespace") + Test-RequiredTargetingPacks ` -testDirectory "targeting-packs" ` -expectedTargetingPacks @("Some.Targeting.Pack.Ref/1.0.1", "Some.Other.Targeting.Pack.Ref/1.0.2", "Some.Targeting.Pack.Ref/4.0.1", "Some.Other.Targeting.Pack.Ref/4.0.2")