Skip to content

fix(test): give the devlore-test binary its .exe suffix on Windows - #378

Merged
David-Noble-at-work merged 1 commit into
developfrom
fix/windows-test-binary-extension
Aug 12, 2026
Merged

David-Noble-at-work merged 1 commit into
developfrom
fix/windows-test-binary-extension

Conversation

@David-Noble-at-work

Copy link
Copy Markdown
Contributor

Phase 3 of issue #373, taking the largest failure cluster first.

The first three-platform run

test (macos-latest) and test (ubuntu-latest) passed — the full race-enabled suite over 121 packages, the first time it had ever run on Darwin. test (windows-latest) failed with 63 --- FAIL lines, which collapse into far fewer causes.

~37 of 63 were one bug

go build -o appends .exe on Windows, so the binary landed at devlore-test.exe while TestMain kept exec'ing devlore-test. Every invocation failed to start — exit code = -1, empty output — which is why all 30 TestCLI_* cases failed at 0.00s, along with the 5 "no JSON summary" and 2 "missing Hello World!" assertions that depend on that process running.

One conditional suffix in the test's own setup. No test skipped, no build tag added to dodge a platform.

Two genuine product defects found, and filed

Both invisible to the previous ubuntu-only gate:

Filed rather than patched inline — they are product changes, not test fixes, and they deserve their own review.

Remaining, and why the counts are a lower bound

Permission-bit assertions (5), a hardcoded /dev/null (2), and two needing a closer read. ~37 masked failures may have been concealing others, so the next Windows run is what establishes the real remainder.

Phase 2's full triage table is recorded in the plan in this same commit.

Verified on Darwin: make vet, full make test green (zero FAIL/panic by count), gofmt clean. The changed path is Windows-only, so CI's windows leg is the real verification.

Phase 3 of issue #373, taking the largest cluster first. The first
three-platform run (PR #375, commit f8b28c8) passed on macOS and ubuntu and
failed on Windows with 63 --- FAIL lines. Roughly 37 of them were one bug.

`go build -o` appends .exe on Windows, so the binary landed at
devlore-test.exe while TestMain kept exec'ing devlore-test. Every invocation
failed to start, reporting `exit code = -1` with empty output — which is why
all 30 TestCLI_* cases failed at 0.00s, along with the 5 "no JSON summary" and
2 "missing Hello World!" assertions that depend on the same process running.

The plan's phase 2 triage is recorded in the same commit. Two genuine product
defects were found and filed rather than patched inline, both invisible to the
previous ubuntu-only gate:

  #376 — Starlark extension loading breaks on any Windows path. C:\Users\...
         interpolated into Starlark source fails on \U, an invalid escape.
  #377 — fsroot.Path.Rel() returns OS-native separators, and Path is a
         serialized type, so documents and their checksums differ between
         platforms. The six failing assertions are correct; the product is
         wrong, and it contradicts this repository's own platform-stable digest
         rule.

Remaining Windows failures are permission-bit assertions, a hardcoded
/dev/null, and two needing a closer read. Those counts are a lower bound: ~37
masked failures may have been concealing others, and the next Windows run
reveals what was behind them.

No test is skipped and no build tag is added to dodge a platform. The fix is
one conditional suffix in the test's own setup.

Verified on Darwin: make vet, full make test green — zero FAIL or panic lines
by count; gofmt clean. The changed path is Windows-only, so CI's windows leg is
the real verification.
Plan: docs/plans/platform-test-matrix.md (phase 2 recorded, phase 3 begun).
Issue: #373
@David-Noble-at-work David-Noble-at-work self-assigned this Aug 12, 2026
@David-Noble-at-work
David-Noble-at-work merged commit a2a904c into develop Aug 12, 2026
7 of 8 checks passed
@David-Noble-at-work
David-Noble-at-work deleted the fix/windows-test-binary-extension branch August 12, 2026 04:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant