This commit is contained in:
2026-08-18 09:20:44 +02:00
commit b826cd721a
522 changed files with 93730 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
# Test Case: 48-bit Fallback Root Union
**Test ID**: TC150-48bit-fallback-root
## Objective
Rerun the Linux-compatible `48BIT=1 && rootnid_8b=0` fallback on the current
exact KLD: the two-byte union remains `rootnid_2b`, not `blocks_hi`.
## Fixture
Use `images/fallback-48bit-root2.erofs` and `source/compact/root.txt`.
Structured evidence asserts incompat `0x80`, `rootnid_8b=0`, nonzero
`rootnid_2b`, provider-sized `blocks_lo`, and valid CRC. fsck.erofs 1.8.6 does
not recognize this newer incompat bit.
## Procedure
Host:
```sh
python3 tests/erofs_fixture.py inspect /work/build/repo22-g1/images/fallback-48bit-root2.erofs --path=/root.txt
od -An -tu2 -j 1038 -N 2 /work/build/repo22-g1/images/fallback-48bit-root2.erofs
od -An -tx4 -j 1104 -N 4 /work/build/repo22-g1/images/fallback-48bit-root2.erofs
od -An -tu8 -j 1136 -N 8 /work/build/repo22-g1/images/fallback-48bit-root2.erofs
```
Guest after mount:
```sh
stat -f 'root_ino=%i type=%HT' "$mnt"
cmp /tmp/repo22-g1/source/compact/root.txt "$mnt/root.txt"
sha256 /tmp/repo22-g1/source/compact/root.txt "$mnt/root.txt"
./statfs_probe "$mnt"
df -kT "$mnt"
```
## Expected Results
- Root inode equals `rootnid_2b`; source data matches.
- `statfs` block count equals `blocks_lo` only, with no multi-terabyte size
error. Current exact KLD mount and cleanup pass.
- Historical TC150 evidence cannot substitute for this rerun.