Skip to content

ci(d4): run the unit suite on Windows#16

Merged
cornish merged 3 commits into
mainfrom
ci/d4-windows-tests
Jun 21, 2026
Merged

ci(d4): run the unit suite on Windows#16
cornish merged 3 commits into
mainfrom
ci/d4-windows-tests

Conversation

@cornish

@cornish cornish commented Jun 21, 2026

Copy link
Copy Markdown
Collaborator

Summary

The Windows CI job was build + vet only. This adds a go test -tags nohtj2k ./... step so the code is actually exercised on Windows.

Scope (deliberate)

  • Unit only — no -tags integration, so fixture-gated tests skip (Windows CI pulls no fixtures).
  • No -race — race+cgo on msys2 Go is brittle, and race detection is already covered on macOS. The Windows job's value is platform-specific behavior (path separators, temp dirs, FS + byte-order semantics).
  • htj2k disabled — OpenJPH isn't packaged for msys2 (-tags nohtj2k, unchanged).

Verification

  • Locally (macOS): the full unit suite passes under -tags nohtj2k.
  • This PR exists to let the Windows runner validate — surfacing any Windows-specific failures is the goal. Will iterate on whatever it finds before merge.

🤖 Generated with Claude Code

cornish and others added 3 commits June 20, 2026 20:56
The Windows job was build+vet only. Add a `go test -tags nohtj2k ./...` step so
the code is actually exercised on Windows — catching path-separator, temp-dir,
and file-system/byte-order issues macOS can't.

Scoped deliberately: unit only (no -tags integration → fixture-gated tests skip,
since Windows CI pulls no fixtures); no -race (race+cgo on msys2 Go is brittle
and race detection is already covered on macOS — the Windows job's value is
platform-specific behavior); htj2k stays disabled (OpenJPH unpackaged for
msys2). Verified locally: the full unit suite passes under -tags nohtj2k.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…as red)

The D4 Windows-CI PR surfaced that the macOS job's tests/integration suite was
already failing on main (last 3 commits red) — two tests not updated for
behavior changes that landed earlier:

- TestConvertTIFF_NovelCodecs/jpegxl: jpegxl-in-TIFF is non-conformant under the
  Phase 2 conformance gate (writable bytes opentile can't read back) → now needs
  --allow-nonconformant. Added a per-codec allowNonconformant flag (jpegxl only;
  avif/webp/htj2k stay conformant in TIFF per containerCapabilities).
- TestDownsample_CMU1SmallRegion: downsample now emits an octave pyramid from the
  reduced L0 (retile engine), so the output level count no longer equals the
  source's. Replaced the stale "== source level count" assertion with an
  octave-structure check (each level = ceil(prev/2), the engine's octave math).

Both verified locally; full tests/integration suite green (665s).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cornish cornish merged commit 272dc6f into main Jun 21, 2026
2 checks passed
@cornish cornish deleted the ci/d4-windows-tests branch June 21, 2026 02:33
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