Skip to content

feat: split Windows unit tests into per-suite artifacts#5142

Merged
paolino merged 4 commits into
masterfrom
paolino/5107-split-windows-tests
Feb 10, 2026
Merged

feat: split Windows unit tests into per-suite artifacts#5142
paolino merged 4 commits into
masterfrom
paolino/5107-split-windows-tests

Conversation

@paolino
Copy link
Copy Markdown
Collaborator

@paolino paolino commented Feb 10, 2026

Summary

Replace monolithic 700MB windows-testing-bundle.nix with per-test-exe derivations. Three-level CI in windows.yml: build gate → upload matrix → test matrix (mirrors Linux CI from #5124). Re-enables Windows unit tests that were disabled in #5136.

Closes #5107

Changes

  • nix/windows-test-exe.nix (new) — per-test-exe derivation: one test exe + DLLs + optional extras
  • nix/windows-testing-bundle.nix (deleted) — replaced by per-test bundles
  • flake.nixci.artifacts.win64.tests is now an attrset of 16 per-test bundles (with testDataDirs for suites that need golden files or plutus scripts)
  • windows.yml — three-level CI: build gate (single cross-compile), upload matrix (16 artifacts), test matrix (25 Windows jobs including wallet-unit sub-splits). wallet-application-tls skipped pending Windows E2E: Haskell TLS fails due to crypton-x509-system not reading Local Machine cert store #5110
  • ci.yml — add working-directory for cardano-wallet-blackbox-benchmarks Linux test
  • PmapSpec.hs — use relative path instead of getDataFileName (nix store paths don't exist on Windows runners)
  • LauncherSpec.hs — replace CHOICE/TIMEOUT with powershell Start-Sleep (CHOICE/TIMEOUT don't support stdin redirection in GHA)
  • lib/wallet-benchmarks/test/data/hoogle-pmap.txt — test data file for blackbox-benchmarks

Proof

Replace monolithic 700MB windows-testing-bundle with per-test-exe
derivations. Three-level CI: build gate → upload matrix → test matrix.
- wallet-primitive: include lib/primitive/test/data (TokenQuantity golden)
- cardano-balance-tx: include lib/balance-tx/test/data (plutus scripts)
- wallet-blackbox-benchmarks: use relative path instead of getDataFileName
- wallet-launcher: replace CHOICE/TIMEOUT with powershell Start-Sleep
@paolino paolino self-assigned this Feb 10, 2026
@paolino paolino added the Bug label Feb 10, 2026
@paolino paolino force-pushed the paolino/5107-split-windows-tests branch from a1b6532 to 741de77 Compare February 10, 2026 19:05
ubuntu-20.04 is deprecated, causing all Publish Docs and
Auto-Approve Docs runs to hang in queued state since mid-December.
@paolino paolino merged commit f3fc427 into master Feb 10, 2026
57 checks passed
@paolino paolino deleted the paolino/5107-split-windows-tests branch February 10, 2026 20:53
paolino added a commit that referenced this pull request Feb 11, 2026
…5150)

## Summary

- Fix `requireClientAuth` to use `readSignedObject` +
`makeCertificateStore` instead of `readCertificateStore`
- `readCertificateStore` from `crypton-x509-store` fails on Windows when
given a single PEM file, causing the server to reject all client
certificates with `CertificateUnknown`
- Includes Windows TLS diagnostic workflow for cert store visibility

Fixes #5110

## Test

All 6 TLS unit tests pass on Linux:
```
Cardano.Wallet.Application.Tls
  TLS Client Authentication
    Can create a TLS default manager [✔]
    Check security program is available [✔]
    Can create a TLS manager [✔]
    Respond to authenticated client if TLS is enabled [✔]
    Deny client with wrong certificate if TLS is enabled [✔]
    Properly deny HTTP connection if TLS is enabled [✔]
```

Needs Windows CI validation — will trigger once #5142 merges (re-enables
`wallet-application-tls` in Windows CI).
paolino added a commit that referenced this pull request Feb 11, 2026
## Summary
- Add `working-directory: lib/wallet-benchmarks` to the
blackbox-benchmarks matrix entry in both `ci.yml` and
`macos-unit-tests.yml`
- The test reads `test/data/hoogle-pmap.txt` via a relative path, so it
must run from the package directory (like other tests with hardcoded
relative paths)
- Fixes the `cardano-wallet-blackbox-benchmarks` failure on macOS since
#5142
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Split Windows unit tests to allow per-suite memory limits

1 participant