Skip to content

test: 将磁盘组合回归纳入常规测试 - #85

Merged
qiyinxi merged 3 commits into
ModAVD:mainfrom
jinghero:test/95-native-combined
Nov 6, 2026
Merged

qiyinxi merged 3 commits into
ModAVD:mainfrom
jinghero:test/95-native-combined

Conversation

@jinghero

@jinghero jinghero commented Nov 5, 2026 •

Copy link
Copy Markdown
Collaborator

六项磁盘改动已进入 main。把 #66 的组合夹具改为 internal/emu 下的普通 Windows 测试,并把两项界面交互测试并入现有脚本;不再需要 overlay、--source 或源码前置检查。普通 Go 测试会编译这些夹具;未设 MODAVD_TEST_SDK_ROOT 时,真实镜像用例按现有集成测试约定跳过。CI 增加磁盘 JS 测试入口。

保留的交互包括:真实整理持锁时的 busy 和 info 降级、convert/compare 阶段父进程退出或取消后的子进程与原盘清理、重试和重复跳过;低收益镜像硬链接或符号链接必须先被拒绝,不能清除遗留临时文件。现有 backing 数据测试继续覆盖继承和覆盖数据。符号链接权限不足时仅跳过对应子用例。

验证

  • Windows、Go 1.26.5,使用从现有正式包复制到隔离目录的 qemu-img 2.12.0 和 DLL,go test -timeout=150s -count=1 -v ./internal/emu -run '^(TestDiskCompactIntegration|TestCompactBudgetRealImages|TestCompactRealCompressedSkip|TestCombinedCompactInterruption|TestCombinedLinkedLowBenefit|TestQemuImgLifetimeCancelAndTimeout)$' 通过。两个链接子用例实际执行;未启动 Android 或下载 SDK。
  • 不设置 SDK 时,新测试经普通 go test 编译并按条件跳过。node --test scripts/test_disk_info.mjs scripts/test_compact_format.mjs 8 项通过;其他现有 Node 测试、三平台 vet、构建、隐私、作者和仓库脚本检查通过。
  • 本机完整 go test -timeout=150s -count=1 ./... 未通过:internal/avd.test.exe 启动报 Access is denied;其余包包括 internal/emu 通过。该包单独重试和更换临时目录后仍被拒绝,没有更改安全设置。
  • 按 pstack 影响范围与实际验证流程复查,并经独立复审;复审者实际运行无 SDK 跳过、8 项 JS 和隔离 qemu-img 定向用例,未发现待修问题。

原 #66 用 overlay 把完整 DiskCompact 的内部预算缩短至五秒,验证内部超时后的整条恢复路径。本 PR 不修改生产代码或注入预算:完整整理用调用方 deadline 验证中断及恢复,现有 runQemuImg 测试以三秒内部预算单独验证内部超时和子进程退出。因此不声称两项组合起来等同于原来的完整内部预算超时实测。

原组合回归及其结果保留在 #66。普通 CI 不提供 SDK,因此会编译但跳过真实镜像用例;实际镜像覆盖以以上本地测试为准。

CI 42124652980 已完成,Windows checks、Ubuntu、macOS 和 create-cancel 均通过。

Refs ModAVD/ModAVD#95
Refs ModAVD/ModAVD#106

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants