1.4 KiB
1.4 KiB
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:
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:
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. statfsblock count equalsblocks_loonly, with no multi-terabyte size error. Current exact KLD mount and cleanup pass.- Historical TC150 evidence cannot substitute for this rerun.