acdream/tests/AcDream.Launcher.Core.Tests/Installation
Erik 7037681a1f
All checks were successful
CI / linux-portable (push) Successful in 2m56s
CI / windows-gate (push) Successful in 4m53s
CI / release (push) Successful in 2m5s
fix: state the verification cache's real limit instead of a claim that is false on ZFS
Run 174's Linux job failed on
ASilentlyCorruptedPackageOfTheSameSizeStillFailsAndDropsTheCache. It passed in
isolation on that same machine, and passed under full-suite load there too, so
it looked like a flake. It is not.

Measured on the runner:

    same-mtime collisions: 141 / 200
    fs type: zfs

Its /tmp is ZFS, whose timestamp granularity is coarse enough that a same-size
rewrite usually lands on the SAME last-write time. So the startup fast path —
size plus write time — cannot see that modification, and the test was right to
fail. LU1's commit message claimed "truncating or touching the package still
blocks launch"; on a coarse-timestamp filesystem the second half of that is
false. NTFS's 100 ns resolution is why it never showed on Windows.

Rather than relax the test until it passes, the contract is now stated as two
facts that are true everywhere instead of one that is not:

- A same-size corruption whose write time moves is caught at startup. The test
  moves the timestamp explicitly instead of trusting the clock, so it asserts
  the mechanism rather than the filesystem's resolution.
- A corruption preserving BOTH size and write time is NOT caught at startup and
  IS caught by a forced full verification — which is exactly what the
  launcher's Verify files button runs. New test, so the escape hatch is
  covered rather than merely mentioned.

PreparedAssetVerificationCache now documents the limit with the measurement, so
the next reader does not have to rediscover it from a red pipeline.

Verified on Windows (11 passed) and five consecutive runs on the ZFS runner
itself (11 passed each). Full solution 14,375 passed, 0 failed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 22:03:52 +02:00
..
BakeProcessRunnerTests.cs fix(launcher): guard orphan bake publication 2026-08-14 21:02:27 +02:00
BakeProgressJsonlParserTests.cs feat(launcher): add verified first-run installer 2026-08-14 20:06:37 +02:00
BakeProgressProtocolTests.cs fix(launcher): harden installer transactions 2026-08-14 20:36:11 +02:00
DatDirectoryLocatorTests.cs feat(launcher): add verified first-run installer 2026-08-14 20:06:37 +02:00
LauncherInstallerTests.cs test: introduce Lane=Timing for load-sensitive tests, and stop chasing them individually 2026-08-19 15:29:10 +02:00
LauncherInstallRecordStoreTests.cs fix(launcher): harden installer transactions 2026-08-14 20:36:11 +02:00
PreparedAssetVerificationCacheTests.cs fix: state the verification cache's real limit instead of a claim that is false on ZFS 2026-08-19 22:03:52 +02:00