Skip to content

test(macos): probe filesystem scan fixture capabilities - #595

Merged
zackees merged 1 commit into
mainfrom
fix/macos-fs-scan-assumptions
Nov 5, 2026
Merged

zackees merged 1 commit into
mainfrom
fix/macos-fs-scan-assumptions

Conversation

@zackees

@zackees zackees commented Nov 5, 2026

Copy link
Copy Markdown
Collaborator

The macOS filesystem scan tests now probe the scratch filesystem instead of assuming invalid-byte filename and sparse-file support from its type. Successful invalid-byte writes retain exact byte-for-byte scanner assertions; only EILSEQ is treated as an unsupported capability, and other errors propagate. Sparse fixture entries always match observed block count and length, with the sparse inequality required whenever metadata demonstrates a hole. Full-tree accounting and entry presence remain checked with 1, 2 and 8 threads. Product code is unchanged.

Verified incident evidence supplied for this fix: macOS x86_64 tests run 42052832620, main, 2026-11-05T15:13:50Z, failed in intel-macos-tests: 1332 tests run, 1330 passed, 2 failed, 52 skipped. Both failing macOS-only tests landed in #586 (5d471ba, 2026-11-05T01:21Z). The Linux-only merge queue never exercised them on macOS; this was their first macOS execution. The previous Nov 4 run 41855462676 passed 1310 tests, before these 22 tests existed.

  • platform_macos::fs_scan::filesystem_tests::arbitrary_filename_bytes_survive: the QEMU guest mount does not report APFS/HFS but rejects 0xff with EILSEQ (code 92, Illegal byte sequence). The old fallback propagated that fixture error before scanning.
  • platform_macos::fs_scan::filesystem_tests::real_tree_parallel_accounting: the guest fully allocates the sparse-write fixture, failing blocks() * 512 < len() before scanning. Capability is now derived from actual metadata, while scanner accounting is asserted on either filesystem.

Validation:

  • Required pinned ci-lint local-gate run passed and stamped the commit with its tree-bound Local-Gate trailer. Linux minimal passed (bosn run 66bf3c41-6fe5-4572-ac47-4dc4dcafb84f); Dylint minimal passed (bosn run 33769fa6-7591-4b5f-b91e-679ade09da6e); final lint lane passed host Clippy/Dylint and all-target Clippy for macOS x86_64/ARM64 and Windows x86_64/ARM64 with warnings denied.
  • soldr cargo fmt --all -- --check and diff whitespace checks passed.
  • soldr rustup run nightly-2026-08-15 cargo test --features fs-scan --lib platform_linux::fs_scan::filesystem_tests: all 4 Linux filesystem tests passed.
  • soldr cargo dylint --all --workspace -- --all-features --all-targets passed separately. The standalone platform-boundary test initially passed 21 checks but its UI driver build failed resolving a cloned repository's master ref; the containerized gate subsequently passed its Dylint checks.
  • Initial stable Linux test/lint attempts hit unrelated E0554 in proc-macro2's generated nightly feature probes. Moving only this worktree's generated proc-macro2 build/fingerprint artifacts to trash resolved the lint failure; rerunning the gate reused its two successful workflow lanes and passed the complete lint lane. No source or policy workaround was added.

Native APFS and QEMU macOS execution are unavailable locally and are not claimed; cross-target Clippy compiled the changed macOS tests but cannot verify runtime filesystem behavior. Native follow-up should run the two platform_macos::fs_scan::filesystem_tests tests (or that entire module) with soldr cargo test --features fs-scan --lib platform_macos::fs_scan::filesystem_tests on the macOS runner. ci-full is selected at PR creation for native coverage. Leave unmerged and unenqueued for Zach.

Local-Gate: v1 tree=812f62ee22de8894396e5a113abd532f3f0449f7 secs=1162 lanes=linux-minimal:reused@72727dab3a90,dylint-minimal:reused@e57f81d4e5ef,lint:run
Ci-Attestation: {"at":1793904115,"gate":"general/all/ci-guards","host":"linux-x86_64","key":"72727dab3a901201ae48b5b73d17b5dfc91a83d6b8a1377dd7d557f02c545bed","lane":"linux-minimal","parents":["6104a254b65302b82bbe365ea8ba9eb5d4772b3e"],"secs":null,"stamp":"1b9e0902ca27741c17ab8d313bfd7464","tree":"812f62ee22de8894396e5a113abd532f3f0449f7","v":1,"via":"reused"}
Ci-Attestation: {"at":1793904115,"gate":"rust/x86_64-unknown-linux-gnu/default-facade-clippy","host":"linux-x86_64","key":"72727dab3a901201ae48b5b73d17b5dfc91a83d6b8a1377dd7d557f02c545bed","lane":"linux-minimal","parents":["6104a254b65302b82bbe365ea8ba9eb5d4772b3e"],"secs":null,"stamp":"b1adda12272899078ac0b3130fd1ace0","tree":"812f62ee22de8894396e5a113abd532f3f0449f7","v":1,"via":"reused"}
Ci-Attestation: {"at":1793904115,"gate":"rust/x86_64-unknown-linux-gnu/default-facade-test","host":"linux-x86_64","key":"72727dab3a901201ae48b5b73d17b5dfc91a83d6b8a1377dd7d557f02c545bed","lane":"linux-minimal","parents":["6104a254b65302b82bbe365ea8ba9eb5d4772b3e"],"secs":null,"stamp":"2c6583a9a338a8ad489055bc5c5e9679","tree":"812f62ee22de8894396e5a113abd532f3f0449f7","v":1,"via":"reused"}
Ci-Attestation: {"at":1793904115,"gate":"rust/x86_64-unknown-linux-gnu/desktop-status-test","host":"linux-x86_64","key":"72727dab3a901201ae48b5b73d17b5dfc91a83d6b8a1377dd7d557f02c545bed","lane":"linux-minimal","parents":["6104a254b65302b82bbe365ea8ba9eb5d4772b3e"],"secs":null,"stamp":"5d49515415a32f76727475039870508c","tree":"812f62ee22de8894396e5a113abd532f3f0449f7","v":1,"via":"reused"}
Ci-Attestation: {"at":1793904115,"gate":"rust/x86_64-unknown-linux-gnu/dylint-all-features-all-targets","host":"linux-x86_64","key":"e57f81d4e5efad9129e2f6552ba5d84f60e36ea76a8c176529a78b5084d79f76","lane":"dylint-minimal","parents":["6104a254b65302b82bbe365ea8ba9eb5d4772b3e"],"secs":null,"stamp":"9867c413c41c8a440cb4c66ee0960481","tree":"812f62ee22de8894396e5a113abd532f3f0449f7","v":1,"via":"reused"}
Ci-Attestation: {"at":1793905303,"gate":"rust/aarch64-apple-darwin/clippy","host":"linux-x86_64","key":"06591b3a246c936f1f4d26efb2a6af3226d9a33e9bf343216df4b9dd8bc4073e","lane":"lint","parents":["6104a254b65302b82bbe365ea8ba9eb5d4772b3e"],"secs":1162,"stamp":"ce803f222164fff30f1164f9a826fc48","tree":"812f62ee22de8894396e5a113abd532f3f0449f7","v":1,"via":"run"}
Ci-Attestation: {"at":1793905303,"gate":"rust/aarch64-pc-windows-msvc/clippy","host":"linux-x86_64","key":"06591b3a246c936f1f4d26efb2a6af3226d9a33e9bf343216df4b9dd8bc4073e","lane":"lint","parents":["6104a254b65302b82bbe365ea8ba9eb5d4772b3e"],"secs":1162,"stamp":"5d55111b48df2c6548bbeb6178fb8bdc","tree":"812f62ee22de8894396e5a113abd532f3f0449f7","v":1,"via":"run"}
Ci-Attestation: {"at":1793905303,"gate":"rust/x86_64-apple-darwin/clippy","host":"linux-x86_64","key":"06591b3a246c936f1f4d26efb2a6af3226d9a33e9bf343216df4b9dd8bc4073e","lane":"lint","parents":["6104a254b65302b82bbe365ea8ba9eb5d4772b3e"],"secs":1162,"stamp":"ff36ab1116415d6fa6468ab93f01ce29","tree":"812f62ee22de8894396e5a113abd532f3f0449f7","v":1,"via":"run"}
Ci-Attestation: {"at":1793905303,"gate":"rust/x86_64-pc-windows-msvc/clippy","host":"linux-x86_64","key":"06591b3a246c936f1f4d26efb2a6af3226d9a33e9bf343216df4b9dd8bc4073e","lane":"lint","parents":["6104a254b65302b82bbe365ea8ba9eb5d4772b3e"],"secs":1162,"stamp":"cd82b63a2144623739e33fa18f7e710c","tree":"812f62ee22de8894396e5a113abd532f3f0449f7","v":1,"via":"run"}
Ci-Attestation: {"at":1793905303,"gate":"rust/x86_64-unknown-linux-gnu/clippy","host":"linux-x86_64","key":"06591b3a246c936f1f4d26efb2a6af3226d9a33e9bf343216df4b9dd8bc4073e","lane":"lint","parents":["6104a254b65302b82bbe365ea8ba9eb5d4772b3e"],"secs":1162,"stamp":"6214c47cbca3a2d2ccbf36768146196e","tree":"812f62ee22de8894396e5a113abd532f3f0449f7","v":1,"via":"run"}
Ci-Attestation: {"at":1793905303,"gate":"rust/x86_64-unknown-linux-gnu/dylint","host":"linux-x86_64","key":"06591b3a246c936f1f4d26efb2a6af3226d9a33e9bf343216df4b9dd8bc4073e","lane":"lint","parents":["6104a254b65302b82bbe365ea8ba9eb5d4772b3e"],"secs":1162,"stamp":"a7e9c1409fe045eefd56e87386e5c431","tree":"812f62ee22de8894396e5a113abd532f3f0449f7","v":1,"via":"run"}
@zackees zackees added the ci-full Run the complete release-equivalent CI matrix on this PR SHA label Nov 5, 2026
@zackees
zackees added this pull request to the merge queue Nov 5, 2026
Merged via the queue into main with commit a2ec7ed Nov 5, 2026
37 of 52 checks passed
@zackees
zackees deleted the fix/macos-fs-scan-assumptions branch November 5, 2026 22:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-full Run the complete release-equivalent CI matrix on this PR SHA

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant