Files
erofs-freebsd-out-tree/tests/TC089-lz4-pcluster-4k.md
T
2026-08-18 09:20:44 +02:00

2.0 KiB

Test Case: LZ4 Compressed Physical Cluster Mapping (4KB)

Test ID: TC089-lz4-pcluster-4k

G5 fixture contract: Use 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 (pcluster) mapping for LZ4 compression with 4KB pcluster size.

Preconditions

  • EROFS image with LZ4, 4KB pcluster: test-lz4-pcluster-4k.erofs
  • Test file: /files/test-4k.dat (aligned to 4KB boundaries)
  • Mount point: /mnt/test

Test Steps

  1. Mount the image:

    mount -t erofs /dev/md0 /mnt/test
    
  2. Read aligned to pcluster boundary (offset 0):

    dd if=/mnt/test/files/test-4k.dat of=/tmp/out1 bs=4K count=1 skip=0
    
  3. Read aligned to pcluster boundary (offset 4K):

    dd if=/mnt/test/files/test-4k.dat of=/tmp/out2 bs=4K count=1 skip=1
    
  4. Read unaligned (crosses pcluster boundary):

    dd if=/mnt/test/files/test-4k.dat of=/tmp/out3 bs=2K count=2 skip=1
    
  5. Read spanning multiple pclusters:

    dd if=/mnt/test/files/test-4k.dat of=/tmp/out4 bs=16K count=1
    

Expected Results

  • Step 2: Single pcluster decompressed, correct data
  • Step 3: Adjacent pcluster decompressed, correct data
  • Step 4: Two pclusters decompressed for unaligned read
  • Step 5: Four pclusters decompressed (16K / 4K = 4)

Verification Method

  • Verify pcluster boundaries handled correctly
  • Confirm unaligned reads work (may decompress extra pclusters)
  • Test each pcluster independently decompressible
  • Verify correct data returned for all read patterns

Cleanup

umount /mnt/test
mdconfig -d -u md0
rm /tmp/out1 /tmp/out2 /tmp/out3 /tmp/out4

Notes

  • 4KB pcluster provides good random access performance
  • Each 4KB logical region compressed independently
  • Small pcluster = less compression, better random access
  • Related tests: TC090 (64KB pcluster)