update
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user