Repository navigation
Cross-check Strata against independent readers (synthetic corpus) - #182
Merged
Merged
Conversation
…earched and tagged HFS+ names its entries by catalog node ID (cnid); about twenty copies of the rule looked only for the other readers' keys. Expanding an HFS+ folder listed the volume root again, and search, hashing, indexing and tagging never went below the top folder. One helper (engine/nodes.py) replaces the copies in the engine and web/app.js; a test fails if one is written out again. HfsPlus can look an entry up by handle, so a tagged file can be exported. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017DPjyZZHvaivtvJ3N4hZhz
tests/crosscheck.py reads synthetic images with Strata and with libyal readers and qemu-img, layer by layer, and reports every difference. Understood differences live in tests/crosscheck_baseline.json with reasons; new ones fail the run. Real images are supported with names withheld. Also: HFS+ fixture folders carry a folder mode, NTFS fixture $Secure has a $SDS stream. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017DPjyZZHvaivtvJ3N4hZhz
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017DPjyZZHvaivtvJ3N4hZhz
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #181 (its walker fix is what lets the harness descend into HFS+ folders); GitHub will retarget this to
mainwhen that merges.What this is
tests/crosscheck.pyreads the same image with Strata and with established readers and lists every difference. It answers the roadmap's open question on independent validation, for synthetic evidence so far.missingif absent; Strata still needs only the standard library.--chunks).tests/crosscheck_baseline.jsonholds the understood differences, each with a reason; an unexplained one fails the run (--strictalso fails on stale entries). It refuses entries about anything but synthetic cases.--imageswithholds file and folder names from everything printed or saved (--namesreveals them), and saves only to the git-ignoredcrosscheck-out/..github/workflows/crosscheck.ymlinstalls the references and runs it on engine changes. Docs indocs/CROSSCHECK.md.What the first run found
$Securelacked$SDS; the QCOW2 v2 fixture used a v3-only zero flag, and its compressed cluster inflated to less than a cluster (libqcow then returned uninitialised bytes there).Verification
Full suite 1395 tests OK (14 skipped), including
tests/test_crosscheck.py(20 tests: chunk plan, comparison kinds, baseline validation, redaction, runner end to end incl. a reference that lies and one that refuses). Harness run with all references installed: exit 0 with--strict.No real evidence was used.
🤖 Generated with Claude Code
https://claude.ai/code/session_017DPjyZZHvaivtvJ3N4hZhz
Generated by Claude Code