test(starry): add comprehensive git/git-ssh/svn/gh/b4 dev-tool carpets - #1884
test(starry): add comprehensive git/git-ssh/svn/gh/b4 dev-tool carpets#1884Lfan-ke wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
本 PR 将 apps/starry/git 和 apps/starry/git-ssh 的既有应用测试扩展为覆盖更多 Git 命令与 SSH 传输路径的地毯式断言。它不修改 StarryOS 内核或 syscall/Linux ABI;feature-development.md 适用,按局部测试能力扩展审阅,未见与基础分支实现或其他开放 PR 的重复实现。
阻塞问题:git-ssh-test.sh 的计数门会把正常成功路径判为失败,详见行内评论。该脚本由现有 prebuild.sh 安装到 /usr/bin,并由两份 QEMU 配置的成功/失败正则消费,因此问题直接阻断 git-ssh 应用场景;git-test.sh 的独立改动看起来与此问题隔离。
验证:prepare-review 已确认工作区为 1db25211dfa7e558b6278d6467c48eea46914341;git diff --check origin/dev...HEAD、两个脚本的 dash -n 均通过;在宿主以 sh apps/starry/git/git-test.sh 实跑得到 PASS=138 FAIL=0 TOTAL=138 和 GIT_TEST_PASSED。未重复运行完整 QEMU 流程:当前头组织 CI 已完成且 71 个 checks 中 36 个 success、35 个为矩阵/路径条件 skip、无 failure;提交说明还声明 git-ssh 已在目标环境验证。但本次静态计数已足以确定 git-ssh 当前头必然失败,不能由这些通过项抵消。
历史 review、行内讨论和 PR 讨论均为空,无需处理旧线程。已核对现有安装/选择链路及 QEMU fail_regex;测试仍由原有 app 配置发现。最终待办审计除本条阻塞外均已完成;修正计数后请在实际 SSH/QEMU 路径复跑,使成功标记可达。
Powered by gpt-5.6-terra
| # negative controls (closed port, missing repo). Three-gate: PASS/FAIL/TOTAL | ||
| # vs EXPECTED, GIT_SSH_TEST_PASSED only when all pass. | ||
|
|
||
| EXPECTED=22 |
There was a problem hiding this comment.
严重性:阻塞。这里的固定计数与实际断言数不一致:正常路径只有 19 个 assert_* 调用,且没有其他会调用 pass/fail 的语句。因此所有 SSH/Git 操作成功后仍会以 PASS=19 TOTAL=19 EXPECTED=22 进入 finish,打印 GIT_SSH_TEST_FAILED 并返回非零;现有 QEMU 的 fail_regex 会将该应用判为失败。请将期望值改为 19,或补齐 3 个有实际语义的断言后同步该值。
Expands the git and git-ssh carpets to full-subcommand coverage and adds new subversion, gh (github-cli) and b4 carpets, all with hard assertions on real output and a fixed EXPECTED three-gate (fail==0 && total==EXPECTED==pass). - git (138 assertions): plumbing, branch/merge (ff+3-way+conflict), rebase (+interactive/--onto), cherry-pick/revert, reset/restore, stash, tag/describe, local transport (clone/fetch/push/pull/bundle/archive), worktree, submodule, sparse-checkout, reflog, blame, bisect, rerere, gc/fsck, config, notes, format-patch/am, shortlog. Deterministic authors/dates. - git-ssh: real clone/push/pull/fetch/ls-remote over the ssh:// transport. - svn (43): file:// repo via svnadmin - checkout/add/commit/update/status/log/ diff/copy(branch)/switch/merge/revert/propset-get/blame/cat/export/info/cleanup/list. - gh (20): offline surface - version, help, api --help, config get/set (authed API scoped out, no network). - b4 (27): offline surface - version, full subcommand set + per-subcommand help + key flags (lore-networked mbox/am/send workflows scoped out). Host: git 138/138, svn 43/43, gh 20/20, b4 27/27 all PASSED.
1db2521 to
2142ba5
Compare
There was a problem hiding this comment.
本 PR 将既有 apps/starry/git、git-ssh 扩展为地毯式断言,并新增 b4、gh、svn 的四架构 QEMU 应用配置与 overlay 安装脚本。它不改内核或 StarryOS syscall/Linux ABI;feature-development.md 适用,按局部应用测试能力扩展审阅。实现沿用现有 git 应用的 prebuild.sh -> /usr/bin/<test>.sh -> shell_init_cmd -> success/fail_regex 链路,除 git-ssh 的计数问题外,新增内容与既有功能隔离。
阻塞项见行内评论:git-ssh 的三重计数门会把完整成功路径判为失败,因 QEMU 配置匹配 GIT_SSH_TEST_FAILED,当前 SSH 应用工作流不可通过。请同步 EXPECTED 后在实际 SSH/QEMU 路径复跑。
验证:prepare-review、当前头 SHA 核对、git diff --check origin/dev...HEAD 以及全部新增/修改 shell 脚本的 dash -n/prebuild 的 bash -n 均通过。组织当前头 CI 为 71 个 checks:36 success、35 个预期矩阵/路径 skip、0 failure;依本次指示,CI 已通过故未重复完整本地 QEMU。该静态反例独立于 CI 成功结果,能确定性证明失败标记可达。
覆盖与文档:新增测试由各 app 的 prebuild 安装,QEMU 配置选择并以 PASS/FAIL 正则传播结果;通用 apps/starry/README.md 已说明 app 与 test-suit 的分层,本 PR 未改变 ABI,因此 syscall 指南不适用。没有 [patch.crates-io] 或 Rust crate 改动。
重复/重叠:已在基础分支检索 b4/gh/svn carpet,未发现同等实现;以 b4、github-cli、subversion、git-ssh 和 apps/starry/git 查询开放 PR,除本 PR 外未发现需要依赖或冲突的候选项。
历史 review:已有针对旧审阅作业的同类评论技术上合理,但其 review 目标不是本作业;本次已在当前头重新核实,未发现其他待处理讨论。最终待办除该阻塞项外已完成;修复后需重新验证 git-ssh 的实际运行结果。
Powered by gpt-5.6-terra
| # negative controls (closed port, missing repo). Three-gate: PASS/FAIL/TOTAL | ||
| # vs EXPECTED, GIT_SSH_TEST_PASSED only when all pass. | ||
|
|
||
| EXPECTED=22 |
There was a problem hiding this comment.
严重性:阻塞(测试正确性)。这里的 EXPECTED=22 与当前 19 个断言调用不一致。每个断言恰好增加一次 PASS 或 FAIL,因此所有 SSH/Git 操作成功时仍得到 PASS=19 FAIL=0 TOTAL=19;finish 要求三者都等于 22,必然打印 GIT_SSH_TEST_FAILED 并退出 1,随后被 QEMU 的 fail_regex 判失败。请改为 19,或补充 3 个有语义的断言并同步该常量。
问题
apps/starry/git、apps/starry/git-ssh原测试仅覆盖少量子命令,无法作为 StarryOS 上 git 能力的完备性验证;svn/gh/b4 等常用开发/版本控制工具在 StarryOS 上缺测试。改动
将 git/git-ssh 扩写为全子命令地毯测试,并新增 subversion、gh(github-cli)、b4 三个 carpet。全部对真实输出/SHA/porcelain/revision 做硬断言,固定 EXPECTED 三门(
fail==0 && total==EXPECTED && pass==EXPECTED),确定性(固定作者/日期/路径)。ssh://传输的真实 clone/push/pull/fetch/ls-remote。svnadmin+file://本地库,checkout/add/commit/update/status/log/diff/copy(分支)/switch/merge/revert/propset-get/blame/cat/export/info/cleanup/list,断言真实 revision + 内容。api --help、config get/set。认证 API(需网络)明确划出范围,不做伪造。验证
宿主实跑:git
PASS=138,svnPASS=43,ghPASS=20,b4PASS=27,均*_TEST_PASSED;各 carpet 均做 mutation(篡改一条断言→真 FAIL)验证非空过。