{ "files": { "App/algo/adc_health.c": { "func_rate": 1.0, "funcs_covered": 6, "funcs_valid": 6, "line_rate": 1.0, "lines_covered": 108, "lines_valid": 108 }, "App/algo/adc_input.c": { "func_rate": 1.0, "funcs_covered": 14, "funcs_valid": 14, "line_rate": 0.975, "lines_covered": 117, "lines_valid": 120 }, "App/algo/freq.c": { "func_rate": 1.0, "funcs_covered": 8, "funcs_valid": 8, "line_rate": 0.9692, "lines_covered": 126, "lines_valid": 130 }, "App/algo/phasor.c": { "func_rate": 1.0, "funcs_covered": 6, "funcs_valid": 6, "line_rate": 0.9818, "lines_covered": 54, "lines_valid": 55 }, "App/algo/prot_elm.c": { "func_rate": 1.0, "funcs_covered": 8, "funcs_valid": 8, "line_rate": 0.9717, "lines_covered": 103, "lines_valid": 106 }, "App/algo/prot_set.c": { "func_rate": 0.9565, "funcs_covered": 22, "funcs_valid": 23, "line_rate": 0.9609, "lines_covered": 172, "lines_valid": 179 }, "App/algo/sample_ring.c": { "func_rate": 1.0, "funcs_covered": 5, "funcs_valid": 5, "line_rate": 1.0, "lines_covered": 41, "lines_valid": 41 }, "App/cfg/cfg_file.c": { "func_rate": 0.9615, "funcs_covered": 25, "funcs_valid": 26, "line_rate": 0.8773, "lines_covered": 572, "lines_valid": 652 }, "App/fs/vol_lock.c": { "func_rate": 1.0, "funcs_covered": 3, "funcs_valid": 3, "line_rate": 1.0, "lines_covered": 17, "lines_valid": 17 }, "App/log/soe_rec.c": { "func_rate": 1.0, "funcs_covered": 7, "funcs_valid": 7, "line_rate": 0.931, "lines_covered": 81, "lines_valid": 87 }, "App/protocol/iec104/iec104_asdu.c": { "func_rate": 1.0, "funcs_covered": 10, "funcs_valid": 10, "line_rate": 0.932, "lines_covered": 96, "lines_valid": 103 }, "App/protocol/iec104/iec104_link.c": { "func_rate": 1.0, "funcs_covered": 23, "funcs_valid": 23, "line_rate": 0.9062, "lines_covered": 367, "lines_valid": 405 }, "App/protocol/iec104/iec104_pts.c": { "func_rate": 0.7647, "funcs_covered": 13, "funcs_valid": 17, "line_rate": 0.6724, "lines_covered": 117, "lines_valid": 174 }, "App/sync/time_sync.c": { "func_rate": 1.0, "funcs_covered": 4, "funcs_valid": 4, "line_rate": 1.0, "lines_covered": 99, "lines_valid": 99 }, "App/util/sha256.c": { "func_rate": 1.0, "funcs_covered": 7, "funcs_valid": 7, "line_rate": 0.9737, "lines_covered": 111, "lines_valid": 114 }, "App/util/sys_clock.c": { "func_rate": 1.0, "funcs_covered": 8, "funcs_valid": 8, "line_rate": 0.9936, "lines_covered": 156, "lines_valid": 157 }, "App/util/task_watchdog.c": { "func_rate": 1.0, "funcs_covered": 8, "funcs_valid": 8, "line_rate": 1.0, "lines_covered": 55, "lines_valid": 55 }, "Drivers/BSP/GD5F2GQ5UE/nand_ftl.c": { "func_rate": 0.6364, "funcs_covered": 14, "funcs_valid": 22, "line_rate": 0.4862, "lines_covered": 123, "lines_valid": 253 }, "Drivers/BSP/NET/lftpd/lftpd_auth.c": { "func_rate": 1.0, "funcs_covered": 2, "funcs_valid": 2, "line_rate": 0.9737, "lines_covered": 37, "lines_valid": 38 } }, "generated_by": "scripts/check_test_coverage.py --update-baseline", "modules": { "adc_health": { "files": { "App/algo/adc_health.c": 108 }, "lines_total": 108, "ok": true }, "adc_input": { "files": { "App/algo/adc_input.c": 120 }, "lines_total": 120, "ok": true }, "cfg_file": { "files": { "App/cfg/cfg_file.c": 652 }, "lines_total": 652, "ok": true }, "freq": { "files": { "App/algo/freq.c": 130, "App/algo/phasor.c": 55, "App/algo/sample_ring.c": 41 }, "lines_total": 226, "ok": true }, "ftp_auth": { "files": { "App/util/sha256.c": 114, "Drivers/BSP/NET/lftpd/lftpd_auth.c": 38 }, "lines_total": 152, "ok": true }, "iec104": { "files": { "App/algo/freq.c": 130, "App/algo/phasor.c": 55, "App/algo/prot_elm.c": 106, "App/algo/prot_set.c": 179, "App/algo/sample_ring.c": 41, "App/protocol/iec104/iec104_asdu.c": 103, "App/protocol/iec104/iec104_link.c": 405, "App/protocol/iec104/iec104_pts.c": 174 }, "lines_total": 1193, "ok": true }, "nand_port": { "files": { "Drivers/BSP/GD5F2GQ5UE/nand_ftl.c": 253 }, "lines_total": 253, "ok": true }, "phasor": { "files": { "App/algo/phasor.c": 55, "App/algo/sample_ring.c": 41 }, "lines_total": 96, "ok": true }, "prot_elm": { "files": { "App/algo/freq.c": 130, "App/algo/phasor.c": 55, "App/algo/prot_elm.c": 106, "App/algo/prot_set.c": 179, "App/algo/sample_ring.c": 41 }, "lines_total": 511, "ok": true }, "prot_set": { "files": { "App/algo/prot_set.c": 179 }, "lines_total": 179, "ok": true }, "sha256": { "files": { "App/util/sha256.c": 114 }, "lines_total": 114, "ok": true }, "soe": { "files": { "App/log/soe_rec.c": 87, "App/protocol/iec104/iec104_asdu.c": 103 }, "lines_total": 190, "ok": true }, "sys_clock": { "files": { "App/util/sys_clock.c": 157 }, "lines_total": 157, "ok": true }, "time_sync": { "files": { "App/sync/time_sync.c": 99 }, "lines_total": 99, "ok": true }, "vol_lock": { "files": { "App/fs/vol_lock.c": 17 }, "lines_total": 17, "ok": true }, "watchdog": { "files": { "App/util/task_watchdog.c": 55 }, "lines_total": 55, "ok": true } }, "note": "主机单测覆盖率基线。口径与工具链限制见 docs/测试说明/主机单测覆盖率口径.md。门禁判据:files[].lines_covered 与 funcs_covered 只增不减,下降即拦提交。", "schema": 1, "tested_sources": [ "App/algo/adc_health.c", "App/algo/adc_input.c", "App/algo/freq.c", "App/algo/phasor.c", "App/algo/prot_elm.c", "App/algo/prot_set.c", "App/algo/sample_ring.c", "App/cfg/cfg_file.c", "App/fs/vol_lock.c", "App/log/soe_rec.c", "App/protocol/iec104/iec104_asdu.c", "App/protocol/iec104/iec104_link.c", "App/protocol/iec104/iec104_pts.c", "App/sync/time_sync.c", "App/util/sha256.c", "App/util/sys_clock.c", "App/util/task_watchdog.c", "Drivers/BSP/GD5F2GQ5UE/nand_ftl.c", "Drivers/BSP/NET/lftpd/lftpd_auth.c" ], "totals": { "files_generated_excluded": 5, "files_tested": 19, "files_untested": 125, "func_rate": 0.9324, "funcs_covered": 193, "funcs_valid": 207, "line_rate": 0.8821, "lines_covered": 2552, "lines_valid": 2893, "modules_ok": 16, "modules_total": 16 }, "untested_sources": [ { "code_lines": 1251, "path": "Drivers/BSP/NET/net_socket.c" }, { "code_lines": 801, "path": "Drivers/BSP/CH395F/ch395f.c" }, { "code_lines": 694, "path": "Drivers/BSP/NET/lftpd/lftpd.c" }, { "code_lines": 689, "path": "Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.c" }, { "code_lines": 458, "path": "App/log/sys_log_mcu.c" }, { "code_lines": 329, "path": "Drivers/BSP/UI/ui_menu_view.c" }, { "code_lines": 323, "path": "Drivers/BSP/UI/ui_net_sink.c" }, { "code_lines": 300, "path": "Drivers/BSP/UI/ui_content_page.c" }, { "code_lines": 287, "path": "Drivers/BSP/NET/net_pending.c" }, { "code_lines": 281, "path": "App/task/default_task.c" }, { "code_lines": 265, "path": "App/log/console_log.c" }, { "code_lines": 264, "path": "Drivers/BSP/SD2506/sd2506.c" }, { "code_lines": 263, "path": "Drivers/BSP/NET/net_events.c" }, { "code_lines": 207, "path": "Drivers/BSP/NET/lftpd/lftpd_io.c" }, { "code_lines": 206, "path": "Drivers/BSP/CH395F/ch395f.h" }, { "code_lines": 205, "path": "Drivers/BSP/UI/ui_page_net_cfg.c" }, { "code_lines": 204, "path": "Drivers/BSP/UI/ui_standby.c" }, { "code_lines": 202, "path": "App/task/iec104_serv.c" }, { "code_lines": 191, "path": "Drivers/BSP/NET/net_listener.c" }, { "code_lines": 171, "path": "App/task/adc_task.c" }, { "code_lines": 171, "path": "Drivers/BSP/NET/lftpd/lftpd_inet.c" }, { "code_lines": 167, "path": "Drivers/BSP/NETCFG/net_cfg.c" }, { "code_lines": 162, "path": "Drivers/BSP/NET/net_select.c" }, { "code_lines": 160, "path": "App/util/task_prof.c" }, { "code_lines": 157, "path": "Drivers/BSP/TPAFE5160/tpafe5160.c" }, { "code_lines": 150, "path": "Drivers/BSP/UI/ui_page_password.c" }, { "code_lines": 135, "path": "App/app/app_main.c" }, { "code_lines": 129, "path": "App/cfg/cfg_file_store_mcu.c" }, { "code_lines": 126, "path": "Drivers/BSP/UI/ui_menu.c" }, { "code_lines": 123, "path": "App/log/soe_store.c" }, { "code_lines": 123, "path": "App/task/net_task.c" }, { "code_lines": 100, "path": "Drivers/BSP/NET/net_types.h" }, { "code_lines": 98, "path": "Drivers/BSP/SD2506/sd2506.h" }, { "code_lines": 93, "path": "Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.h" }, { "code_lines": 90, "path": "App/task/protect_task.c" }, { "code_lines": 83, "path": "Drivers/BSP/NET/net_socket.h" }, { "code_lines": 79, "path": "Drivers/BSP/RS485/rs485.c" }, { "code_lines": 79, "path": "Drivers/BSP/UI/ui_port.c" }, { "code_lines": 77, "path": "App/algo/prot_set.h" }, { "code_lines": 77, "path": "Drivers/BSP/dbg_log.h" }, { "code_lines": 71, "path": "App/task/ui_task.c" }, { "code_lines": 62, "path": "App/protocol/iec104/iec104_asdu.h" }, { "code_lines": 59, "path": "Drivers/BSP/NETCFG/ftp_cfg.c" }, { "code_lines": 56, "path": "App/protocol/iec104/iec104_link.h" }, { "code_lines": 54, "path": "Drivers/BSP/TPAFE5160/tpafe5160.h" }, { "code_lines": 51, "path": "App/util/task_watchdog.h" }, { "code_lines": 50, "path": "App/algo/adc_health.h" }, { "code_lines": 44, "path": "App/algo/adc_input.h" }, { "code_lines": 44, "path": "App/log/soe_rec.h" }, { "code_lines": 43, "path": "App/cfg/prot_set_store.c" }, { "code_lines": 42, "path": "Drivers/BSP/UI/ui_content_page.h" }, { "code_lines": 41, "path": "App/cfg/cfg_file.h" }, { "code_lines": 41, "path": "Drivers/BSP/NET/lftpd/private/lftpd_status.h" }, { "code_lines": 41, "path": "Drivers/BSP/UI/ui_page_ac.c" }, { "code_lines": 34, "path": "Drivers/BSP/NETCFG/net_cfg.h" }, { "code_lines": 34, "path": "Drivers/BSP/UI/ui_w_records.c" }, { "code_lines": 33, "path": "Drivers/BSP/NET/net_config.h" }, { "code_lines": 33, "path": "Drivers/BSP/NET/net_select.h" }, { "code_lines": 32, "path": "Drivers/BSP/RS485/rs485.h" }, { "code_lines": 31, "path": "App/log/sys_log.h" }, { "code_lines": 31, "path": "Drivers/BSP/UI/ui_deco.c" }, { "code_lines": 29, "path": "Drivers/BSP/NET/lftpd/lftpd_auth.h" }, { "code_lines": 28, "path": "App/algo/prot_elm.h" }, { "code_lines": 28, "path": "App/protocol/iec104/iec104_pts.h" }, { "code_lines": 27, "path": "App/algo/phasor.h" }, { "code_lines": 27, "path": "App/task/task_handles.h" }, { "code_lines": 27, "path": "Drivers/BSP/UI/ui_page_device_info.c" }, { "code_lines": 26, "path": "App/util/task_prof.h" }, { "code_lines": 26, "path": "Drivers/BSP/NET/net_pending.h" }, { "code_lines": 25, "path": "Drivers/BSP/UI/ui_port.h" }, { "code_lines": 25, "path": "Drivers/BSP/bsp_err.h" }, { "code_lines": 24, "path": "Drivers/BSP/UI/ui_tokens.h" }, { "code_lines": 22, "path": "App/cfg/cfg_file_store.h" }, { "code_lines": 22, "path": "App/util/sha256.h" }, { "code_lines": 22, "path": "Drivers/BSP/NETCFG/ftp_cfg.h" }, { "code_lines": 22, "path": "Drivers/BSP/UI/ui_page_runlog.c" }, { "code_lines": 22, "path": "Drivers/BSP/UI/ui_page_selftest.c" }, { "code_lines": 20, "path": "Drivers/BSP/UI/ui_page_dc.c" }, { "code_lines": 19, "path": "App/log/console_log.h" }, { "code_lines": 19, "path": "Drivers/BSP/UI/ui_w_records.h" }, { "code_lines": 18, "path": "App/app/sys_events.h" }, { "code_lines": 18, "path": "Drivers/BSP/NET/lftpd/lftpd.h" }, { "code_lines": 18, "path": "Drivers/BSP/NET/net_listener.h" }, { "code_lines": 18, "path": "Drivers/BSP/UI/ui_net_sink.h" }, { "code_lines": 17, "path": "App/algo/sample_ring.h" }, { "code_lines": 16, "path": "Drivers/BSP/UI/ui_menu_view.h" }, { "code_lines": 15, "path": "App/algo/freq.h" }, { "code_lines": 15, "path": "App/util/sys_clock.h" }, { "code_lines": 15, "path": "Drivers/BSP/UI/ui_net_sink_backend_mcu.c" }, { "code_lines": 15, "path": "Drivers/BSP/UI/ui_standby.h" }, { "code_lines": 14, "path": "Drivers/BSP/UI/ui_style.c" }, { "code_lines": 13, "path": "App/log/soe_store.h" }, { "code_lines": 13, "path": "App/task/adc_task.h" }, { "code_lines": 13, "path": "Drivers/BSP/NET/net_events.h" }, { "code_lines": 13, "path": "Drivers/BSP/UI/ui_pwd_def.h" }, { "code_lines": 12, "path": "App/app/app_main.h" }, { "code_lines": 12, "path": "App/fs/vol_lock.h" }, { "code_lines": 12, "path": "Drivers/BSP/GD5F2GQ5UE/nand_ftl.h" }, { "code_lines": 12, "path": "Drivers/BSP/NET/lftpd/private/lftpd_io.h" }, { "code_lines": 12, "path": "Drivers/BSP/UI/ui_net_sink_backend.h" }, { "code_lines": 11, "path": "App/sync/time_sync.h" }, { "code_lines": 11, "path": "App/task/net_task.h" }, { "code_lines": 11, "path": "App/task/rs485_task.c" }, { "code_lines": 11, "path": "App/task/rs485_task.h" }, { "code_lines": 11, "path": "App/task/ui_task.h" }, { "code_lines": 11, "path": "Drivers/BSP/NET/lftpd/lftpd_string.c" }, { "code_lines": 11, "path": "Drivers/BSP/NET/lftpd/private/lftpd_inet.h" }, { "code_lines": 11, "path": "Drivers/BSP/UI/ui_menu.h" }, { "code_lines": 11, "path": "Drivers/BSP/UI/ui_page_net_cfg.h" }, { "code_lines": 11, "path": "Drivers/BSP/UI/ui_style.h" }, { "code_lines": 11, "path": "Drivers/BSP/dbg_cfg.h" }, { "code_lines": 10, "path": "App/task/default_task.h" }, { "code_lines": 6, "path": "Drivers/BSP/UI/ui_page_password.h" }, { "code_lines": 5, "path": "App/cfg/prot_set_store.h" }, { "code_lines": 5, "path": "App/task/iec104_serv.h" }, { "code_lines": 5, "path": "App/task/protect_task.h" }, { "code_lines": 5, "path": "Drivers/BSP/NET/lftpd/private/lftpd_log.h" }, { "code_lines": 5, "path": "Drivers/BSP/UI/ui_deco.h" }, { "code_lines": 5, "path": "Drivers/BSP/UI/ui_page_ac.h" }, { "code_lines": 5, "path": "Drivers/BSP/UI/ui_page_dc.h" }, { "code_lines": 5, "path": "Drivers/BSP/UI/ui_page_device_info.h" }, { "code_lines": 4, "path": "Drivers/BSP/UI/ui_page_runlog.h" }, { "code_lines": 4, "path": "Drivers/BSP/UI/ui_page_selftest.h" }, { "code_lines": 3, "path": "App/app/app_cfg.h" }, { "code_lines": 3, "path": "Drivers/BSP/NET/lftpd/private/lftpd_string.h" } ] }