6.4 KiB
6.4 KiB
repo22 手工测试执行记录
- 执行时间:2026-08-08 10:36-10:38 UTC
- 工作区:
/work - 仓库:
/work/repo-community/repo22 - 执行方式:严格按 Markdown 用例进行前置条件检查;未生成 wrapper 或 CI;未修改代码;未 commit/push
- 总结:TC001、TC002、TC007、TC008、TC009、TC010 均为 BLOCKED。没有用例进入 FreeBSD 客体内的正式测试步骤,因此没有伪造 PASS/FAIL。
环境版本
实际命令:
date -u '+%Y-%m-%dT%H:%M:%SZ'
uname -a
cat /etc/os-release
实际输出:
2026-08-08T10:37:36Z
Linux da8f2da26d77 6.12.74+deb13+1-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.74-2 (2026-03-08) x86_64 GNU/Linux
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
VERSION_ID="13"
DEBIAN_VERSION_FULL=13.5
结论:当前 shell 位于 Linux 容器,不是 FreeBSD;kldload、kldstat、mdconfig 等用例命令不能在此环境代替执行。
FreeBSD VM 可访问性
实际命令:
timeout 3 bash -c '</dev/tcp/127.0.0.1/9222'
ssh -vv -o BatchMode=yes -o StrictHostKeyChecking=no \
-o UserKnownHostsFile=/dev/null -o ConnectTimeout=3 \
-p 9222 [email protected] 'uname -a'
ps auxww | grep -E '[q]emu|[b]hyve|[v]mrun|[s]sh.*9222'
tmux ls
screen -ls
实际输出摘要:
/dev/tcp/127.0.0.1/9222: Connection refused
CLOSED
ssh: connect to host 127.0.0.1 port 9222: Connection refused
未发现 qemu/bhyve/vmrun 进程
tmux: command not found
screen: command not found
PID 文件检查:
cat /work/debug-qemu/local/vm/freebsd-build-runtime.pid
ps -p 5274 -o pid,stat,lstart,args
cat /work/debug-qemu/local/vm/qemu.pid
ps -p 23736 -o pid,stat,lstart,args
实际输出:PID 文件分别记录 5274 和 23736,但 ps 对两者都没有返回进程;均为残留 PID 文件。
QEMU 与磁盘基线
实际命令:
command -v qemu-system-x86_64
dpkg-query -W -f='${Status} ${Version}\n' qemu-system-x86 qemu-system-x86_64
find /work -type f -name qemu-system-x86_64 -perm /111 -print
ls -lh --full-time \
/work/debug-qemu/local/vm-freebsd-build.qcow2.bp \
/work/debug-qemu/local/vm/freebsd-build-runtime.qcow2
实际输出:
command -v: 无输出
dpkg-query: no packages found matching qemu-system-x86
dpkg-query: no packages found matching qemu-system-x86_64
find: 未找到工作区内可执行的 qemu-system-x86_64
-r--r--r-- ... 13G ... /work/debug-qemu/local/vm-freebsd-build.qcow2.bp
-r--r--r-- ... 15G ... /work/debug-qemu/local/vm/freebsd-build-runtime.qcow2
结论:现成 FreeBSD 磁盘基线存在,但宿主机没有 QEMU 可执行文件,无法启动 /work/debug-qemu/run-freebsd-build-vm.sh。
erofs.ko 盘点
实际命令:
find /work -type f \( -name erofs.ko -o -name '*erofs*.ko' \) -printf '%s %p\n' | sort
ls -l /work/repo-community/repo22/build/erofs.ko
sha256sum /work/debug-qemu/local/erofs.ko /work/build/erofs.ko
实际输出摘要:
22784 /work/build/dev-src-check/erofs-kmod-obj/erofs.ko
23088 /work/build/dev-src-recheck-obj/erofs-dev-src.ko
30480 /work/build/repo11-kmod-obj/erofs.ko
30480 /work/build/repo12-erofs.ko
30480 /work/build/repo12-kmod-obj/erofs.ko
33800 /work/build/erofs-kmod-obj/erofs.ko
33800 /work/build/erofs.ko
37056 /work/debug-qemu/local/erofs.ko
ls: cannot access '/work/repo-community/repo22/build/erofs.ko': No such file or directory
246a1ab6cc4e77d88b8ee689339e6565085cd0913f769c91ad1a1ef13d3a3cd9 /work/debug-qemu/local/erofs.ko
1fb12045c1fce653cb9f2e75dc76ae3339db6b84def06b92d828357726215f8b /work/build/erofs.ko
结论:存在其他历史构建模块,但没有 repo22 的预期产物 repo22/build/erofs.ko,不能把来源不明或旧仓库模块当作 repo22 测试对象。
测试镜像盘点
实际命令:
for n in test.erofs test-valid.erofs test-bad-crc.erofs \
test-bad-magic.erofs test-truncated.erofs test-empty.erofs \
test-large.erofs; do
find /work -type f -name "$n"
done
实际输出:七个指定名称均为 0 个文件。
发现的非指定通用 fixture 包括:
24576 /work/debug-qemu/local/erofs-fixtures/erofs-test.img
36864 /work/debug-qemu/local/erofs-fixtures/erofs-plain.img
它们不满足 TC009 声明的 10MB/2560 blocks 镜像,也没有证据满足 TC001/TC007 的 testfile.txt、TC002 的有效 CRC/损坏 CRC 配对或 TC010 的 48-bit block count,因此未擅自替代。
用例结果
TC001-mount-basic — BLOCKED
- 未执行
kldload erofs:当前没有可访问的 FreeBSD 客体。 - 未执行后续 mount/umount:缺少已加载 repo22
erofs.ko的 FreeBSD 环境,且缺少test.erofs与已附加的/dev/md0。 - PASS/FAIL:不适用;状态为 BLOCKED。
TC002-superblock-crc32c — BLOCKED
- TC001 前置环境未满足。
- 缺少
test-valid.erofs和test-bad-crc.erofs,不能执行有效 CRC 与损坏 CRC 两部分。 - PASS/FAIL:不适用;状态为 BLOCKED。
TC007-concurrent-mount — BLOCKED
- TC001 前置环境未满足。
- 缺少
test.erofs;现有 fixture 未证明包含/testfile.txt,不能按步骤比较两个挂载点的 SHA-256。 - PASS/FAIL:不适用;状态为 BLOCKED。
TC008-mount-errors — BLOCKED
- TC001 前置环境未满足。
- 缺少
test-bad-magic.erofs、test-truncated.erofs、test-empty.erofs,三个错误分支均无法执行。 - PASS/FAIL:不适用;状态为 BLOCKED。
TC009-statfs-basic — BLOCKED
- TC001 前置环境未满足。
- 缺少用例声明的 10MB、2560 blocks
test.erofs,不能验证df/statfs数值。 - PASS/FAIL:不适用;状态为 BLOCKED。
TC010-statfs-48bit — BLOCKED
- TC001 前置环境未满足。
- 缺少带 48-bit block count、块数大于
2^32的test-large.erofs。 - PASS/FAIL:不适用;状态为 BLOCKED。
精确解阻条件
- 提供可访问的 FreeBSD 13.0+ VM;最直接方式是恢复
127.0.0.1:9222SSH,或在宿主机安装可用的qemu-system-x86_64后启动现有基线。 - 提供由当前 repo22 源码构建、与客体 FreeBSD ABI 匹配的
erofs.ko。 - 提供并确认以下镜像及内容/元数据:
test.erofs、test-valid.erofs、test-bad-crc.erofs、test-bad-magic.erofs、test-truncated.erofs、test-empty.erofs、test-large.erofs。 - TC001/TC007 的基本镜像需包含
/testfile.txt;TC009 的镜像需为约 10MB、2560 blocks;TC010 的镜像需具有可验证的 48-bit block count。