Files
erofs-freebsd-out-tree/tests/TC150-48bit-fallback-root.md
T
2026-08-13 10:44:59 +02:00

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.
  • 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.