test code v1
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# Test Case: Indexed Chunk Data on the Primary Device
|
||||
|
||||
**Test ID**: TC093-chunk-single-device
|
||||
**Category**: Chunk-Based
|
||||
**Priority**: High
|
||||
|
||||
## Objective
|
||||
|
||||
Verify 8-byte chunk indexes whose device ID is zero without a device table.
|
||||
This is not a 4-byte block-map substitute.
|
||||
|
||||
## Fixture
|
||||
|
||||
Use `single-indexed.erofs` from the fresh G6 generator. It is derived from the
|
||||
mkfs blob baseline by asserting each original `(high=0, device=1, pblk)`,
|
||||
folding the new blob bytes behind the metadata block, changing every index to
|
||||
`device=0`, adding one to each pblk, and removing the device-table feature.
|
||||
`verify` must report `extra_devices=0` and `entry_size=8`.
|
||||
|
||||
## Manual procedure
|
||||
|
||||
```sh
|
||||
I=/root/repo22-g6/images
|
||||
S=/root/repo22-g6/sources/chunk
|
||||
mkdir -p /mnt/g6
|
||||
kldload /root/repo22-g6/erofs.ko
|
||||
mdconfig -a -t vnode -f "$I/single-indexed.erofs" -u 90
|
||||
mount -t erofs -o ro /dev/md90 /mnt/g6
|
||||
sha256 "$S/indexed.bin" /mnt/g6/indexed.bin
|
||||
cmp "$S/indexed.bin" /mnt/g6/indexed.bin
|
||||
dd if="$S/indexed.bin" of=/tmp/tc093.expected bs=1 skip=28672 count=8192 2>/dev/null
|
||||
dd if=/mnt/g6/indexed.bin of=/tmp/tc093.actual bs=1 skip=28672 count=8192 2>/dev/null
|
||||
cmp /tmp/tc093.expected /tmp/tc093.actual
|
||||
```
|
||||
|
||||
## Expected results
|
||||
|
||||
- Mount succeeds without any `device.N` option.
|
||||
- Full-file and cross-32768-byte-chunk comparisons pass.
|
||||
- No external GEOM provider or device-table lookup is attempted.
|
||||
|
||||
## Cleanup and zero-state check
|
||||
|
||||
```sh
|
||||
umount /mnt/g6
|
||||
mdconfig -d -u 90
|
||||
kldunload erofs
|
||||
rm -f /tmp/tc093.expected /tmp/tc093.actual
|
||||
mount -p | awk '$3 == "erofs" { print }'
|
||||
mdconfig -l
|
||||
kldstat -n erofs 2>/dev/null || true
|
||||
sysctl -n kern.geom.conftxt | grep -E 'md90|erofs' || true
|
||||
```
|
||||
|
||||
All four final outputs must be empty.
|
||||
Reference in New Issue
Block a user