Files
erofs-freebsd-out-tree/tests/TC108-lzma-large-file.md
T
2026-08-13 10:44:59 +02:00

50 lines
1.5 KiB
Markdown

# Test Case: LZMA Large File Decompression
**Test ID**: TC108-lzma-large-file
**G5 fixture contract**: Use [G5-MANUAL-SETUP.md](G5-MANUAL-SETUP.md).
Its generated paths, source comparisons, structured corruption offsets, and
cleanup rules supersede placeholder examples in this file.
**Category**: Compression
**Priority**: High
**Regression**: None
## Objective
Verify LZMA decompression works correctly for large files (100MB+).
## Preconditions
- `images/lzma-large.erofs`, generated with LZMA level 6
- `/large.bin` and `sources/lzma-large/large.bin`, exactly 104857601 bytes
- FreeBSD 13.0+ with liblzma
## Test Steps
1. Create image with large LZMA-compressed file
2. Attach and mount: `unit=$(mdconfig -a -t vnode -f test.img); mount -t erofs -o ro /dev/${unit} /mnt`
3. Compare complete source and guest SHA256, then run
`timeout 1800 cmp SOURCE /mnt/large.bin`.
4. Compare 4096 bytes at offsets 0, 52428800, and 103809024 with the source.
5. Record `vmstat -m` while mounted and after cleanup; active EROFS
allocations must return to zero.
## Expected Results
- Large file reads successfully
- Checksum matches original
- Random access works at any offset
- Memory usage < 256MB during decompression
## Verification Method
- SHA256 checksum verification
- Random read correctness at offsets: 0, 50MB, 99MB
- Memory usage monitored via top
- No kernel panics or OOM
## Cleanup
```sh
umount /mnt
mdconfig -d -u "${unit#md}"
rm -f /tmp/out
```
## Notes
Tests feature 60: LZMA decompression with large files.