SuperAPI AI 工具集

verify

测试与质量

查看项目

更新于 10-16 03:14

技能介绍

用途:验证 Bun 运行时的代码改动,方式是构建并直接驱动 debug 二进制,而不是用 bun test 或 import-and-call。

构建与驱动:运行 bun bd --version 会构建 ./build/debug/bun-debug 并打印版本。对 JS 可见的改动,用 bun bd -e '<repro>' 运行并观察 stdout;涉及 worker/子进程的改动应通过 -e 启动子进程,以覆盖 worker 退出与事件循环空闲路径;Node 兼容性改动可与 node -e '<same repro>' 交叉比对。

注意事项:src/js/** 的修改可能未进入二进制,bundle-modules 会重新生成 build/<cfg>/codegen/InternalModuleRegistryConstants.h,但嵌入它的 C++ 编译单元不一定重编,导致构建成功却仍运行旧 JS;应以二进制为准,用 bun bd -e 'console.log(<Class>.toString().includes("<new-id>"))' 或直接运行 ./build/<cfg>/bun 检查,若为 false 则 touch src/jsc/bindings/InternalModuleRegistry.cpp 后重建。每次 bun bd 前加 PATH="$HOME/.cargo/bin:$PATH",因为 Homebrew 的 rust 会遮蔽固定 nightly,且 bun bd 每次调用都会重跑 cargo。node:cluster 改动无法用 -e 驱动,需写临时脚本并运行 ./build/debug/bun-debug <file>。同一 worktree 同时只能有一个 bun bd,第二个会阻塞在构建锁上。BUN_DEBUG_QUIET_LOGS=1 可抑制调试日志;调试构建会向 stdout 打印 [cachefs]/[sys] 行,比对前需过滤。MessagePort 的 .on/.off 需 require worker_threads 后才存在。debug+asan 构建比 release 慢 10-100 倍,大分配压力测试本地可能超时。本地只运行改动的测试文件,其余交给 CI。