# Test Case: Large Filesystem with 48-bit Addressing **Test ID**: TC018-48bit-large-fs **Category**: Filesystem Metadata **Priority**: Low ## Objective Verify a real FLAT_PLAIN read whose extended inode has `startblk_hi=1`, so the provider I/O occurs above 16 TiB rather than only reporting a large `statfs` total. ## Fixture Qualification ```sh work=$(mktemp -d /tmp/repo22-tc018.XXXXXX) tests/prepare_error_fixtures.sh "$work/fixtures" python3 tests/erofs_fixture.py inspect \ "$work/fixtures/48bit-high-file-prefix.erofs" --path /high-offset.txt grep '^48bit-high-file-prefix ' "$work/fixtures/fixture-evidence.txt" sha256 -q "$work/fixtures/48bit-high-file-prefix.erofs" ``` Require an extended nonempty FLAT_PLAIN inode, `startblk_hi=1`, a physical `data_offset >= 17592186044416`, a valid CRC, and an end offset within `required_provider_length`. The mutator zeros the original low-block payload, so a reader that ignores `startblk_hi` cannot return the expected source bytes. Read `required_provider_length`, `start_block`, `data_offset`, `low_decoy_offset`, and `file_size` from the evidence line. ## FreeBSD Procedure ```sh provider="$work/48bit-high-file-provider.raw" cp "$work/fixtures/48bit-high-file-prefix.erofs" "$provider" truncate -s "$required_provider_length" "$provider" dd if="$work/fixtures/source/high-offset.txt" of="$provider" bs=4096 \ seek="$start_block" conv=notrunc cc -O2 -Wall -Wextra -std=c17 tests/read_probe.c -o "$work/read_probe" "$work/read_probe" pread "$provider" "$low_decoy_offset" "$file_size" \ "$work/raw-low-offset.txt" "$work/read_probe" pread "$provider" "$data_offset" "$file_size" \ "$work/raw-high-offset.txt" dd if=/dev/zero of="$work/zero.bin" bs="$file_size" count=1 cmp "$work/zero.bin" "$work/raw-low-offset.txt" ! cmp -s "$work/fixtures/source/high-offset.txt" "$work/raw-low-offset.txt" cmp "$work/fixtures/source/high-offset.txt" "$work/raw-high-offset.txt" unit=$(mdconfig -a -t vnode -f "$provider") diskinfo -v "/dev/$unit" mkdir "$work/mnt" mount -t erofs -o ro "/dev/$unit" "$work/mnt" cmp "$work/fixtures/source/high-offset.txt" "$work/mnt/high-offset.txt" cmp "$work/fixtures/source/control.txt" "$work/mnt/control.txt" df -h "$work/mnt" umount "$work/mnt" mdconfig -d -u "${unit#md}" rm -f "$provider" ``` ## Expected Results The raw provider probe and mounted file both return the exact source bytes from above 16 TiB, while a low-offset control remains valid. Record the prefix hash, sparse media size/allocation, high offset, source/data hash, dmesg delta, and cleanup. If sparse high-offset I/O is unavailable, mark SHELVED with all attempts; a large `df` result alone cannot pass TC018.