Repository navigation
Fix Windows-only scala_cli liveness test failure in nightly - #2035
Mikola Lysenko (mikolalysenko) wants to merge 1 commit into
Conversation
liveness_needs_the_committed_tree_and_no_shadowing_repository (added in #2030) has failed the nightly Windows test leg since it landed. It builds Bloop evidence from root.canonicalize(), which on Windows returns a \\?\ verbatim path. Real Bloop never writes that form, and scala_evidence::is_stale strips it from the root before matching, so none of the listed sources sat under the root, project.scala read as unlisted, the evidence counted as stale and liveness stayed Ok(true) where the test wants scala_cli_repository_shadowed. Strip the verbatim prefix in the test, as hosted/sbt_reads.rs does, so the fixture matches what Bloop writes. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011f9aeQCvWWdzt7JSfNCfxa
|
bugbot run Generated by Claude Code |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit bca8248. Configure here.
|
Windows proof: the Generated by Claude Code |
|
Ready for review at head
Generated by Claude Code |
Final review briefWhat it does. Fixes the Windows-only nightly failure of Risk: low. Test-only, 1 line of code plus 2 comment lines. No production code and no assertion changes. On Linux/macOS Look here
Verified
Changes I made: none. Auto-merge is armed, so approving sends this straight to the merge queue. Generated by Claude Code |
Problem
The nightly CI run on main has failed every night for 10+ days. The newest failure (run 42343856927, 2026-11-07) is a single test on
test (windows-latest, 1):The test came in with #2030 (merged 01:50 UTC today). PR and merge-queue CI run the unit tests on Linux only, so the first Windows run was tonight's nightly. It doesn't block merging, but it keeps main's nightly red and hides other regressions there.
Root cause
The Bloop-evidence half of the test builds its fixture paths from
root.canonicalize(). On Windows that returns a\\?\C:\...verbatim path. Real Bloop never writes that form, andscala_evidence::is_staleremoves it from the root before matching (strip_verbatim). So none of the fixture's listed sources fell under the root,project.scalalooked unlisted, the evidence counted as stale and was ignored, and liveness came backOk(true)where the test expects thescala_cli_repository_shadowedreason. This is a fixture bug, not a product bug:hosted/sbt_reads.rstests already strip the prefix the same way.Fix
Strip the verbatim prefix from the fixture's workspace path (
crate::crawlers::sbt_evidence::strip_verbatim) so the evidence looks like what Bloop actually writes. Test-only change: 1 line changed and 2 comment lines added. No assertion is weakened.Proof
cargo test -p socket-patch-core --lib scala_clipasses on Linux (14/14). On Linux the change does nothing, becausestrip_verbatimleaves non-verbatim paths alone.cargo clippy --locked -p socket-patch-core --all-features -- -D warnings(the CI gate) is clean.workflow_dispatch -f os=windowsrun 42348791677 passed. The test isokandtest (windows-latest, 1)reported 6822 passed, 0 failed.Tests removed or moved
None.
Other nightly reds (not addressed here)
e2e-extended (ubuntu, e2e_redirect_gem_build e2e_vendor_gem_build, 3.1, 2.1.4 / 1.17.3)failed on Nov 3, 5 and 6.e2e (ubuntu, e2e_vex_build, poetry/pdm/hatch/pipenv)failed on Nov 6. Let the pdm e2e bootstrap install pdm 2.29.4+ #2034 may cover the pdm part.Generated by Claude Code
Note
Low Risk
Single test fixture change with no production code paths affected.
Overview
Fixes a Windows-only failure in
liveness_needs_the_committed_tree_and_no_shadowing_repositoryby normalizing the synthetic Bloop workspace path before building source paths in the test fixture.The test used
root.canonicalize(), which on Windows yields\\?\-prefixed paths. Production evidence handling already strips that form (scala_evidence::is_staleviastrip_verbatim), so the fake evidence no longer matched listed files under the repo root, stale evidence was dropped, and liveness incorrectly returned success. The fixture now callscrawlers::sbt_evidence::strip_verbatimon the canonical workspace so paths align with what real Bloop writes—test-only; behavior on Linux is unchanged.Reviewed by Cursor Bugbot for commit bca8248. Configure here.
Generated by Claude Code