This commit is contained in:
2026-08-18 09:20:44 +02:00
commit b826cd721a
522 changed files with 93730 additions and 0 deletions
@@ -0,0 +1,188 @@
# 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。
## 环境版本
实际命令:
```sh
date -u '+%Y-%m-%dT%H:%M:%SZ'
uname -a
cat /etc/os-release
```
实际输出:
```text
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 可访问性
实际命令:
```sh
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
```
实际输出摘要:
```text
/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 文件检查:
```sh
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 与磁盘基线
实际命令:
```sh
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
```
实际输出:
```text
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 盘点
实际命令:
```sh
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
```
实际输出摘要:
```text
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 测试对象。
## 测试镜像盘点
实际命令:
```sh
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 包括:
```text
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。
## 精确解阻条件
1. 提供可访问的 FreeBSD 13.0+ VM;最直接方式是恢复 `127.0.0.1:9222` SSH,或在宿主机安装可用的 `qemu-system-x86_64` 后启动现有基线。
2. 提供由当前 repo22 源码构建、与客体 FreeBSD ABI 匹配的 `erofs.ko`
3. 提供并确认以下镜像及内容/元数据:`test.erofs``test-valid.erofs``test-bad-crc.erofs``test-bad-magic.erofs``test-truncated.erofs``test-empty.erofs``test-large.erofs`
4. TC001/TC007 的基本镜像需包含 `/testfile.txt`TC009 的镜像需为约 10MB、2560 blocksTC010 的镜像需具有可验证的 48-bit block count。