SuperAPI AI 工具集

debug-fuzzer-failure

测试与质量

查看项目

更新于 10-16 02:32

技能介绍

用途:该技能提供一套端到端工作流,用于调试 CI 模糊测试器发现的 SSA 优化缺陷,主要针对 pass_vs_prev 类型的失败(检测破坏语义保持的 SSA pass)。

主要能力:由两个子技能组成——extract-fuzzer-repro 从 CI 失败日志中提取 Noir 项目;bisect-ssa-pass 二分 SSA pass 找出破坏语义的那一个,并分析错误变换、创建回归测试、修复缺陷。

使用方式:先确认失败来自 pass_vs_prev(从 GitHub 日志中的测试名 targets::<fuzzer_type>::tests::fuzz_with_arbtest 判断,其他模糊测试器需向开发者求助)。第一步用 gh run view <run-id> --job <job-id> --log > fuzzer_log.txt 下载日志,从日志的 Program: 与 Inputs: 段提取出含 src/main.nr 和 Prover.toml 的项目目录。第二步进入目录运行 nargo execute 验证本地复现,若使用 enums/match 等实验特性需加 -Zenums 等标志。第三步用 bisect-ssa-pass 定位并修复。

适用场景:CI 中 pass_vs_prev 模糊测试失败、有对应 GitHub Actions URL、需要从“CI 变红”推进到“确定哪个 SSA pass 有 bug”。

限制:仅针对 pass_vs_prev 失败,其他模糊测试器可能需不同方法;提取出的项目在修复合并前应保留以便复测;SSA 复杂时建议聚焦发生语义变化的具体函数或块。具体命令细节与完整步骤以技能文档为准。