189 lines
6.4 KiB
Markdown
189 lines
6.4 KiB
Markdown
# 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 blocks;TC010 的镜像需具有可验证的 48-bit block count。
|
||
|