test code v1

This commit is contained in:
2026-08-13 10:44:59 +02:00
commit f3b1165f19
301 changed files with 37885 additions and 0 deletions
+72
View File
@@ -0,0 +1,72 @@
# Test Case: LZ4 Compressed Physical Cluster Mapping (64KB)
**Test ID**: TC090-lz4-pcluster-64k
**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 correct physical cluster mapping for LZ4 compression with 64KB pcluster size.
## Preconditions
- EROFS image with LZ4, 64KB pcluster: `test-lz4-pcluster-64k.erofs`
- Test file: `/files/test-64k.dat` (1MB, highly compressible)
- Mount point: `/mnt/test`
- Generate with `mkfs.erofs -zlz4 -C65536 test-lz4-pcluster-64k.erofs source`
and confirm `compr_cfgs big_pcluster` with `dump.erofs -s`.
## Test Steps
1. Mount the image:
```
mount -t erofs /dev/md0 /mnt/test
```
2. Read first pcluster (64KB):
```
dd if=/mnt/test/files/test-64k.dat of=/tmp/out1 bs=64K count=1
```
3. Read small portion requiring full pcluster decompression:
```
dd if=/mnt/test/files/test-64k.dat of=/tmp/out2 bs=4K count=1 skip=1
```
4. Read crossing pcluster boundary:
```
dd if=/mnt/test/files/test-64k.dat of=/tmp/cross bs=1 skip=65504 count=64
dd if=/root/reference/test-64k.dat of=/tmp/cross.expected bs=1 skip=65504 count=64
cmp /tmp/cross /tmp/cross.expected
```
5. Record the physical extent layout:
```
dump.erofs --path=/files/test-64k.dat -e test-lz4-pcluster-64k.erofs
```
## Expected Results
- Step 2: Full 64KB pcluster decompressed correctly
- Step 3: Reading 4KB requires decompressing entire 64KB pcluster
- Step 4: Boundary crossing handled correctly
- Step 5: The fixture contains a real compressed big-pcluster extent
## Verification Method
- Verify large pcluster decompression works
- Confirm small reads still trigger full pcluster decompression
- Test memory usage reasonable for 64KB decompression
- Do not require a better compression ratio than 4KB for every corpus
## Cleanup
```
umount /mnt/test
mdconfig -d -u md0
rm /tmp/out* /tmp/cross /tmp/cross.expected
```
## Notes
- 64KB pcluster provides better compression at cost of random access
- Common pcluster size for read-heavy workloads
- Related tests: TC089 (4KB pcluster), TC088 (config handling)