test code v1
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# G3 Manual Test Setup
|
||||
|
||||
This setup supports only TC041-TC066, TC141, TC148, TC149, TC152, and
|
||||
TC153. It prepares fixtures and native probes; it does not run tests or assign
|
||||
results.
|
||||
|
||||
## Host Preparation
|
||||
|
||||
From the repo22 root, use an absent output directory:
|
||||
|
||||
git rev-parse HEAD
|
||||
tests/prepare_g3_fixtures.sh /work/build/repo22-g3
|
||||
(cd /work/build/repo22-g3/vfs && sha256sum -c IMAGE-SHA256SUMS)
|
||||
(cd /work/build/repo22-g3/vfs/source &&
|
||||
sha256sum -c ../SOURCE-SHA256SUMS)
|
||||
(cd /work/build/repo22-g3/metadata && sha256sum -c SHA256SUMS)
|
||||
(cd /work/build/repo22-g3/final && sha256sum -c SHA256SUMS)
|
||||
|
||||
Record fixture-evidence.txt, all checksum manifests, the erofs-utils version,
|
||||
the exact source commit, and the KLD SHA256. Transfer the fixtures, sources,
|
||||
and only these native probes to the FreeBSD 15 guest:
|
||||
|
||||
readdir_probe.c g3_vfs_probe.c stat_special.c nfs_fh_tool.c
|
||||
mmap_fault.c sparse_hole_probe.c
|
||||
|
||||
## Guest Preparation
|
||||
|
||||
Build the KLD natively from an archive exported from the recorded commit.
|
||||
Build probes directly; no runner or result wrapper is permitted:
|
||||
|
||||
cc -O2 -Wall -Wextra -Werror -std=c17 readdir_probe.c -o readdir_probe
|
||||
cc -O2 -Wall -Wextra -Werror -std=c17 g3_vfs_probe.c -o g3_vfs_probe
|
||||
cc -O2 -Wall -Wextra -Werror -std=c17 stat_special.c -o stat_special
|
||||
cc -O2 -Wall -Wextra -Werror -std=c17 nfs_fh_tool.c -o nfs_fh_tool
|
||||
cc -O2 -Wall -Wextra -Werror -std=c17 mmap_fault.c -o mmap_fault
|
||||
cc -O2 -Wall -Wextra -Werror -std=c17 sparse_hole_probe.c \
|
||||
-o sparse_hole_probe
|
||||
|
||||
Before the first test, require no EROFS mount, no md provider, and no stale
|
||||
EROFS KLD. Load only the exact KLD under test. For each test, attach a fresh
|
||||
dynamic vnode md, mount read-only, execute that numbered Markdown procedure,
|
||||
then unmount and detach before continuing.
|
||||
|
||||
The report records the literal command, exit status or syscall errno, relevant
|
||||
fixture/data/KLD hashes, dmesg delta, and cleanup state for every test.
|
||||
|
||||
## Common Mount Pattern
|
||||
|
||||
mkdir -p /tmp/repo22-g3/mnt
|
||||
unit=$(mdconfig -a -t vnode -f IMAGE)
|
||||
mount -t erofs -o ro "/dev/$unit" /tmp/repo22-g3/mnt
|
||||
# Execute exactly one numbered test.
|
||||
umount /tmp/repo22-g3/mnt
|
||||
mdconfig -d -u "$unit"
|
||||
|
||||
TC153 additionally creates and removes its documented multi-terabyte sparse
|
||||
provider. Final cleanup requires zero EROFS mounts, zero md providers, the test
|
||||
KLD unloaded, and all guest-generated sparse files removed.
|
||||
Reference in New Issue
Block a user