test(lsp): gate the non-UTF-8 fixture on linux, not merely unix
CI round 1: both macOS jobs failed on the acceptance case added last
commit. APFS enforces valid UTF-8 in filenames, so `std::fs::write` with
a 0xFF byte in the name fails with EILSEQ ("Illegal byte sequence")
before `pmacs.fs.canonicalize` is ever called. The fixture cannot be
built there.
That is a filesystem refusing to represent the case, not a behavioral
difference: the subject — `to_str()` returning None for a non-UTF-8
resolution — is platform-independent Rust, and the Linux run pins it.
`#[cfg(unix)]` was the wrong granularity; review had asked for unix
gating on the symlink tests and I applied the same gate here without
checking whether the filesystem, rather than the API, was the
constraint.
Gated `#[cfg(target_os = "linux")]` with the reason in place, rather
than skipped at runtime, so a future failure here is a real failure and
not a silent no-op.
Ledger records both CI-round facts: this one, and that
`composition_overhead_under_ten_percent` is load-sensitive under a
parallel workspace sweep (it reported -4.6% realistic overhead in the
same run that tripped its 10% budget at 18.8%, which is noise, not work).
This commit is contained in:
parent
a9ef257930
commit
b70393762e
|
|
@ -236,9 +236,21 @@ If it does not, stop and repair the remote/fetch configuration.
|
|||
code rather than left looking covered.
|
||||
- Verification on this branch: `cargo fmt --check` clean; strict
|
||||
workspace Clippy clean; 1,826 default + 2,003 CRDT library tests;
|
||||
dispatch seams 14/14; multi-root 13/13; M4 121; required GPU 155;
|
||||
**isolated-config workspace sweep 3,188 across 93 suites, zero
|
||||
failures**; `git diff --check` clean.
|
||||
dispatch seams 15/15 on Linux (14 on macOS — see below); multi-root
|
||||
13/13; M4 121; required GPU 155; **isolated-config workspace sweep
|
||||
3,189 across 93 suites, zero failures**; `git diff --check` clean.
|
||||
- **Two flakes/portability facts from CI round 1, both worth keeping:**
|
||||
1. `composition_overhead_under_ten_percent` tripped once in a local
|
||||
sweep at 18.8% against a 10% budget, then passed 3/3 in isolation
|
||||
here, passed in isolation on main, and passed a full sweep rerun.
|
||||
The tell is in its own output: the same run reported realistic-frame
|
||||
overhead as **-4.6%**, and a negative figure is measurement noise,
|
||||
not added work. Load-sensitive under a parallel `--workspace` run.
|
||||
2. **A non-UTF-8 filename fixture cannot be built on macOS.** APFS
|
||||
enforces valid UTF-8, so `std::fs::write` fails with EILSEQ
|
||||
("Illegal byte sequence") before the code under test is reached.
|
||||
`#[cfg(unix)]` is NOT sufficient for such a fixture —
|
||||
`#[cfg(target_os = "linux")]` is. Cost one red CI round to learn.
|
||||
|
||||
## Dired lane — framing APPROVED; Stage 0 MERGED, Stage 1 next
|
||||
|
||||
|
|
|
|||
|
|
@ -679,10 +679,20 @@ fn acc34b_falsified_by_a_resolver_that_skips_canonicalization() {
|
|||
// server-affinity key via `file_uri_for` and would silently fail to
|
||||
// round-trip. Bites against the `display()` form, which returns a
|
||||
// non-nil string for this fixture.
|
||||
//
|
||||
// **Linux-gated, and `cfg(unix)` was not enough** — CI caught that.
|
||||
// APFS enforces valid UTF-8 in filenames, so on macOS the `write` below
|
||||
// fails with EILSEQ ("Illegal byte sequence") before the code under test
|
||||
// is ever reached: the fixture cannot be built there. That is a
|
||||
// filesystem refusing to represent the case, not a behavioral
|
||||
// difference — the subject itself, `to_str()` returning None, is
|
||||
// platform-independent Rust. Gated explicitly rather than skipped at
|
||||
// runtime, so a future failure here is a real failure and not a silent
|
||||
// no-op.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
#[test]
|
||||
#[cfg(unix)]
|
||||
#[cfg(target_os = "linux")]
|
||||
fn acc34a_canonicalize_declines_a_non_utf8_resolution() {
|
||||
use std::ffi::OsStr;
|
||||
use std::os::unix::ffi::OsStrExt as _;
|
||||
|
|
|
|||
Loading…
Reference in New Issue