test code v1
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
# Test Case: LZ4 ztailpacking Edge Cases
|
||||
|
||||
**Test ID**: TC092-ztailpacking-edge
|
||||
|
||||
**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**: Medium
|
||||
**Regression**: None
|
||||
|
||||
## Objective
|
||||
Verify correct handling of edge cases in ztailpacking (compressed tail packing) feature.
|
||||
|
||||
## Preconditions
|
||||
- Generated image: `images/lz4-ztail.erofs`
|
||||
- Test files:
|
||||
- `/exact-pcluster.dat` (4096-byte non-tail control)
|
||||
- `/one-byte-tail.dat` (4097-byte logical boundary case)
|
||||
- `/max-tail.dat` (8191-byte logical boundary case)
|
||||
- `/zero-tail.dat` (empty-file control)
|
||||
- `/inline.dat` is independently proven by the manifest to have
|
||||
`Z_EROFS_ADVISE_INLINE_PCLUSTER` and nonzero `h_idata_size`. The four edge
|
||||
controls must not be described as ztailpacked unless their own map headers
|
||||
prove it.
|
||||
- Mount point: `/mnt/test`
|
||||
|
||||
## Test Steps
|
||||
1. Mount the image:
|
||||
```
|
||||
mount -t erofs /dev/md0 /mnt/test
|
||||
```
|
||||
|
||||
2. Read file with exact pcluster size (no tail):
|
||||
```
|
||||
cat /mnt/test/files/exact-pcluster.dat > /tmp/out1
|
||||
sha256sum /tmp/out1
|
||||
```
|
||||
|
||||
3. Read file with minimal tail (1 byte):
|
||||
```
|
||||
cat /mnt/test/files/one-byte-tail.dat > /tmp/out2
|
||||
tail -c 1 /tmp/out2 | od -A n -t x1
|
||||
```
|
||||
|
||||
4. Read file with maximum tail size:
|
||||
```
|
||||
cat /mnt/test/files/max-tail.dat > /tmp/out3
|
||||
stat -f %z /tmp/out3
|
||||
```
|
||||
|
||||
5. Read file with zero-length tail:
|
||||
```
|
||||
cat /mnt/test/files/zero-tail.dat > /tmp/out4
|
||||
```
|
||||
|
||||
## Expected Results
|
||||
- Step 2: File without tail read correctly
|
||||
- Steps 2-5: Every exact logical size, full SHA256, and byte comparison matches
|
||||
its source file
|
||||
|
||||
## Verification Method
|
||||
- Verify all tail size edge cases handled
|
||||
- Confirm boundary conditions don't cause errors
|
||||
- Test tail packing storage limits enforced correctly
|
||||
- Verify data integrity for all edge cases
|
||||
|
||||
## Cleanup
|
||||
```
|
||||
umount /mnt/test
|
||||
mdconfig -d -u "${unit#md}"
|
||||
rm /tmp/out*
|
||||
```
|
||||
|
||||
## Notes
|
||||
- Tail size limits depend on inline storage capacity
|
||||
- Zero-length tail is valid edge case
|
||||
- Exact pcluster alignment means no tail needed
|
||||
- Related tests: TC091 (basic ztailpacking)
|
||||
Reference in New Issue
Block a user