update
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# Test Case: 255-byte Filename
|
||||
|
||||
**Test ID**: TC123-long-filename
|
||||
**Category**: Boundary & Stress
|
||||
**Priority**: Medium
|
||||
**Regression**: None
|
||||
|
||||
## Objective
|
||||
|
||||
Verify exact `NAME_MAX` lookup, readdir name bytes, stat, and file content.
|
||||
|
||||
## Preconditions
|
||||
|
||||
- Complete `G7-MANUAL-SETUP.md`.
|
||||
- Use the fixture's ASCII `LONG-NAME`; its byte count must be 255.
|
||||
|
||||
## Manual Steps
|
||||
|
||||
```sh
|
||||
G7=/root/repo22-g7
|
||||
FIX=$G7/fixtures
|
||||
SRCROOT=$FIX/sources/boundaries
|
||||
IMAGE=$FIX/images/boundaries.erofs
|
||||
MNT=/mnt/repo22-g7-tc123
|
||||
E=$G7/evidence/TC123
|
||||
mkdir -p "$MNT" "$E"
|
||||
long_name=$(cat "$FIX/LONG-NAME")
|
||||
name_bytes=$(printf '%s' "$long_name" | wc -c | tr -d ' ')
|
||||
printf 'name_bytes=%s\nname=%s\n' "$name_bytes" "$long_name" \
|
||||
| tee "$E/name.txt"
|
||||
test "$name_bytes" -eq 255
|
||||
unit=$(mdconfig -a -t vnode -f "$IMAGE")
|
||||
mount -t erofs -o ro "/dev/$unit" "$MNT"
|
||||
(cd "$SRCROOT" && find longname -type f -print | sort) > "$E/source.names"
|
||||
(cd "$MNT" && find longname -type f -print | sort) > "$E/target.names"
|
||||
cmp "$E/source.names" "$E/target.names"
|
||||
test "$(wc -l < "$E/target.names" | tr -d ' ')" -eq 1
|
||||
stat -f 'size=%z name=%N' "$MNT/longname/$long_name" | tee "$E/stat.txt"
|
||||
cmp "$SRCROOT/longname/$long_name" "$MNT/longname/$long_name"
|
||||
source_hash=$(sha256 -q "$SRCROOT/longname/$long_name")
|
||||
target_hash=$(sha256 -q "$MNT/longname/$long_name")
|
||||
printf 'source=%s\ntarget=%s\n' "$source_hash" "$target_hash" \
|
||||
| tee "$E/hashes.txt"
|
||||
test "$source_hash" = "$target_hash"
|
||||
umount "$MNT"
|
||||
mdconfig -d -u "${unit#md}"
|
||||
test -z "$(mount -p | awk -v m="$MNT" '$2 == m { print }')"
|
||||
test -z "$(mdconfig -l | tr ' ' '\n' | grep -x "$unit")"
|
||||
```
|
||||
|
||||
## PASS Gate
|
||||
|
||||
- The filename is exactly 255 bytes and readdir returns that one exact name.
|
||||
- Stat succeeds; source/mount `cmp` and SHA256 values match.
|
||||
- No truncation, extra entry, panic, hang, or cleanup leak occurs.
|
||||
Reference in New Issue
Block a user