# 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 root@127.0.0.1 '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 blocks；TC010 的镜像需具有可验证的 48-bit block count。

