交付前核对覆盖率计数、固件地址与Notebook源码
三个具体交付检查:区分LCOV未知分支、拒绝HEX地址重叠,在不执行输出的情况下恢复Notebook代码。
能打开的导出仍可能回答错误问题
覆盖率百分比可能掩盖无分母,两份固件可能各自校验和正确却地址重叠,小份清理Notebook也可能保留源码中所有秘密。先明确接收任务,再留下直接核对它的证据。
| 观察 | 可用结论 | 下一步 |
|---|---|---|
| BRDA次数为“-” | 执行次数未知,但分支仍已发现 | 保留未知标记并审查测试覆盖 |
| 两文件存储同一地址 | 即便字节相同,合并归属也不明确 | 回构建输入解决地址归属 |
| Notebook输出大幅缩小 | 保存显示数据被删除 | 运行代码前核对保留源码/附件 |
覆盖率:把trace留在完整报告旁
用示例三条DA复核:一个命中是行1/3。两个函数一个命中是1/2;命中分支加未知分支也是1/2。没有发现函数显示n/a。这些数字描述已有trace,不是新测出的测试运行。
报告保留过期LF/LH等差异,从不打开源路径补缺少覆盖点。下载完整HTML、JSON、CSV,前200条预览不是完整交付。
固件:记录校验和不能证明可安全合并
合并bootloader与应用前比较存储区域及入口声明。工具拒绝每个重叠且不返回部分产物;相同字节重叠也需要原工具明确归属。
高位稀疏地址应核对准确区段字节和排除结束边界,不跨空隙填充裸镜像。用接收固件工具复读下载HEX;板卡兼容、启动和应用CRC是另外的检查。
Notebook:先比较代码,再决定是否执行
大量显示输出可能让Notebook打开失败。清理把保存MIME值作为数据并直接删除,不渲染;保留source表示和元数据数字,根widget策略明确可见。
源码清单给出单元索引、类型、ID、原字符串/数组及哈希。把清理副本与原件比较,保留Markdown/raw附件。清理器不判断代码安全、不清除源码秘密、不运行内核。
- 保持原始导出不改动。
- 核对widget策略和删除输出项数量。
- 在接收工具打开清理副本,比较代表性source、CRLF和附件。
- 分享前按实际敏感内容审查保留元数据及源码。
随交付保存一份接收复核记录
记录导出工具/版本、原文件、选项、完整产物及接收工具复核。预算失败时只在任务仍有意义的情况下回原工具修正或拆分。本地工具运行成功证明其声明变换,接收应用仍需接受产物。
参考资料
- Flutter LCOV报告具体提问
任务来源:真实提问希望阅读导出的lcov覆盖率,不估计需求规模。
- Bootloader与应用HEX合并提问
任务来源:两份固件需要合并;浏览器产物不自动化Eclipse或证明设备适配。
- 不渲染输出打开Notebook提问
任务来源:保存图片/DataFrame输出使打开占用过大内存,但需要保留代码,不从提问推导性能承诺。
- Official LCOV project
仅正确性来源:本工具为限定1.x合同,不支持所有新版扩展。
- IntelHex merge reference
正确性及独立reader来源,不是需求证据。
- Jupyter nbformat description
正确性来源,不保证执行安全或个人信息清除。
本分类工具使用说明
展开工具,查看操作步骤、可调选项和支持范围,再直接进入工作区。
LCOV离线覆盖率报告读取一份本地LCOV 1.x tracefile,重算覆盖率计数、保留未知分支,并下载完整离线HTML报告。
在不读取源文件路径的情况下检查测试运行器导出的覆盖率。查看真实行、函数和分支计数,识别过期声明汇总,并把独立HTML报告与原始tracefile一起交付。
操作步骤
- 粘贴或打开测试运行器导出的完整LCOV 1.x tracefile。
- 核对重算汇总、未知分支和声明计数差异。
- 下载coverage.html及完整JSON/CSV,在本地打开HTML并保留原始tracefile。
可调选项
- 保护CSV表格公式式文字
- 默认开启
能力与限制
- 一份UTF-8文件或粘贴tracefile,最多5 MiB、50000个覆盖点(DA + FN + BRDA)、1000个完整源文件记录。每个准确源路径只允许一条记录;重复路径明确拒绝,不静默合并测试上下文。已选文件优先;全部下载合计最多10 MiB,表格预览前200条源记录。
- 支持LCOV 1.x的TN、SF、FN、FNDA、DA、BRDA、LF/LH/FNF/FNH/BRF/BRH及可选VER。FNDA与FN顺序可不同,但每个函数必须同时有位置和次数。次数与分支标识为非负uint64;源行号1–2147483647。可选DA checksum必须为32位十六进制。新版FN结束行、FNL/FNA及MC-DC扩展拒绝。
- 覆盖率汇总从实际覆盖点重算。声明汇总不一致会在报告中保留差异,不用它充当分母。BRDA“-”保留为未知,计入已发现分支,不改成命中次数0。分母为0显示n/a/null,不显示100%。
- 完整HTML列出所有覆盖点和计数差异,转义文件、测试和函数文字,不含脚本或读取源路径的链接。JSON将uint64命中次数保存为十进制字符串;CSV包含每条源记录,表格安全保护可能给公式式标签加前缀。不会请求源文件、合并tracefile、运行测试或测量新的覆盖率。
Intel HEX地址合并按稀疏32位地址合并本地Intel HEX 00–05文件,先核对记录校验和、地址重叠及入口冲突再交付。
仅在存储地址没有重叠时合并bootloader与应用HEX导出。检查完整区段和入口声明,再下载规范HEX与稀疏地址映射,不为大段地址空隙填充数据。
操作步骤
- 选择原始bootloader/应用HEX文件,或粘贴一份完整HEX进行检查。
- 检查存储范围、区段边界和入口类型;任何重叠都会在下载前失败。
- 下载merged.hex、完整地址映射JSON及区段报告,刷写前用接收固件工具复核。
可调选项
- 保护CSV表格公式式文字
- 默认开启
能力与限制
- 粘贴一份HEX文件,或选择最多64份UTF-8文件,组合最多2 MiB;已选文件优先。最多50000条非空记录、1 MiB实际存储字节,稀疏地址与跨度无关。全部完整产物合计最多10 MiB;区段预览前200条。
- 支持00数据、01 EOF、02扩展段地址、03 CS:IP入口、04扩展线性地址、05 EIP入口。长度、校验和、记录地址与各类型数据长度必须准确。每份文件需要一个EOF;其后记录、非法十六进制/空白、重复入口记录与未知类型拒绝。接受空行和可选开头UTF-8 BOM。
- 地址范围0x00000000–0xFFFFFFFF,超出范围的数据拒绝。同一存储地址重复出现即整体失败,即便字节相同也不合并。保留一致的入口声明,类型或数值不同则冲突。失败不提供部分结果。
- 输出为16字节数据记录及扩展线性地址,保留入口记录类型。地址映射JSON包含每个连续区段的准确十六进制字节;报告/CSV给出完整区段范围,结束地址不包含在区段内(可为0x100000000)。不填地址空隙、不刷写硬件、不判断设备适配、不认证固件签名、不验证应用CRC。
Notebook输出清理与源码恢复清除本地nbformat 4 Notebook的输出和执行次数,保留单元源码、附件及元数据精确数字。
从大量显示输出导致难以打开的Notebook中恢复代码。在不渲染保存输出的情况下删除它们,明确选择根widget状态策略,并下载清理副本及按单元索引的源码清单。
操作步骤
- 打开原始.ipynb而不渲染保存输出,或粘贴小份支持格式的Notebook。
- 选择是否清除根widget状态,核对输出删除数和执行次数重置数。
- 下载cleaned.ipynb与cell-sources.json,在Jupyter打开清理副本并核对源码/附件,再自行决定是否执行。
可调选项
- 清除根metadata.widgets状态
- 默认开启
其他元数据和附件继续保留;这不是自动敏感信息清理。
- 保护CSV表格公式式文字
- 默认开启
能力与限制
- 一份已选UTF-8 .ipynb文件最多64 MiB,或粘贴JSON最多8 MiB;已选文件优先。支持nbformat 4 minor 0–5,最多200000个JSON值、128层、10000个单元。全部下载合计最多10 MiB,表格显示前200个单元。保留的大量源码、附件或元数据仍可能超过输出预算。
- 支持代码、Markdown和raw单元,以及保存的stream/error/display_data/execute_result输出。校验结构字段、minor 5唯一ID、source表示和已知元数据字段;重复JSON键、新版单元/输出类型、未知结构扩展与不支持格式版本拒绝。自定义元数据继续作为数据保留。 拼接单元源码的孤立代理码元会拒绝,避免UTF-8哈希默默替换内容。
- 将每个代码单元的outputs清为空数组、execution_count设为null。显式选项只控制根metadata.widgets。保留source字符串/字符串数组表示、单元顺序、ID、CRLF/中文、Markdown/raw附件、其他元数据与原始大整数/小数token。JSON排版会改变,不覆盖原文件。
- 不渲染MIME、不运行脚本或单元、不启动内核、不自动去除个人信息。保留的源码、附件、执行时间/信任/自定义元数据可能仍含敏感内容。单元源码JSON保留准确source表示及其拼接后UTF-8 SHA-256,不声称Notebook已经运行或测试通过。