From 125bb5cf2d3b5943361109df3c1d0cff507e31c7 Mon Sep 17 00:00:00 2001 From: Vito Sansevero Date: Thu, 29 Oct 2026 10:58:56 -0700 Subject: [PATCH] ci(portability): switch on 8.3 names for the Windows test TEMP (#487) D: made no short names (run 40922502209 logged the long spelling), so the step now switches them on for D: before it creates the folder, and warns when the folder still has no short name. --- .github/workflows/portability.yml | 5 ++++- TESTING.md | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/portability.yml b/.github/workflows/portability.yml index bd58b2c6..43782e03 100644 --- a/.github/workflows/portability.yml +++ b/.github/workflows/portability.yml @@ -57,14 +57,17 @@ jobs: # databases under TEMP, so it moves to a folder on D: (measured in #487, # run 40915866444). The runner's TEMP was an 8.3 short name # (C:\Users\RUNNER~1\...), so the new one is spelled by its short name too - # when the disk has them, and paths still have to be resolved. + # and paths still have to be resolved. D: makes no short names by default + # (run 40922502209), so they are switched on for it first. - name: Keep test files on the work disk (Windows) if: runner.os == 'Windows' shell: pwsh run: | + fsutil 8dot3name set D: 0 $folder = New-Item -ItemType Directory -Force -Path (Join-Path $env:RUNNER_TEMP "PromptManagerTests") $short = (New-Object -ComObject Scripting.FileSystemObject).GetFolder($folder.FullName).ShortPath Write-Output "test TEMP: $short (long name $($folder.FullName))" + if ($short -eq $folder.FullName) { Write-Output "::warning::D: gave the test TEMP no 8.3 short name" } "TEMP=$short" >> $env:GITHUB_ENV "TMP=$short" >> $env:GITHUB_ENV diff --git a/TESTING.md b/TESTING.md index 64aeb1e0..6b41dd58 100644 --- a/TESTING.md +++ b/TESTING.md @@ -260,8 +260,9 @@ the process exits non-zero. - On the Windows runners `TEMP` sits on the OS disk C:, where a flush took about 6 ms and a test database's create-to-delete about 111 ms (D: 0.5 ms and 23 ms, macOS 19 ms). `portability.yml` points `TEMP`/`TMP` at a folder under - `RUNNER_TEMP` on D: before the suite, spelled by its 8.3 short name when D: - has them (the runner's own TEMP was `C:\Users\RUNNER~1\...`), and logs it. + `RUNNER_TEMP` on D: before the suite. It switches 8.3 short names on for D: + and spells the folder by its short name, as the runner's own TEMP was + (`C:\Users\RUNNER~1\...`), logs it, and warns when there is none. A test that waits on a fixed busy timeout, a network name (`\\server\share`: use `\\localhost\`) or a default TLS context (it reads the Windows certificate store) costs seconds there; the slowest list shows it.