Linux Manager cmocka tests
【免费下载链接】wazuhWazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.项目地址: https://gitcode.com/GitHub_Trending/wa/wazuh
| Test | Status |
|---|---|
| test_component_init | 🟢 |
| test_error_handling | 🔴 |
Coverage
| Coverage type | Percentage | Result |
|---|---|---|
| Lines | 85.4% | 🟢 |
状态标记由脚本用 `sed` 统一转换:`Passed` → 🟢,`Failed` → 🔴。各分区小标题(如 "Linux Manager cmocka tests")同样由脚本从 `cmocka_titles` 映射表生成。 ### 5.2 覆盖率统计的实现 覆盖率统计由 [src/unit_tests/CMakeLists.txt](https://link.gitcode.com/i/74a02a30dd09b430d43939284d96dd42) 中的 `coverage` 自定义目标驱动,链路为 lcov/gcov/genhtml 三件套:先 `lcov --zerocounters` 清零,建立基线 `coverage.base`,运行 `ctest`,捕获 `coverage.info`,合并基线生成 `coverage.total`,随后做精细的路径剔除(`--remove`),最终用 `genhtml` 输出 HTML 报告到 `coverage-report/`。 剔除规则非常值得关注,它直接决定了覆盖率的"分母": - **全局剔除**:`external/`(第三方库)、`unit_tests/`、`data_provider/`、`shared_modules/`、`syscollector/`、`syscheckd/src/db/`、`syscheckd/src/ebpf/`、系统头文件(`/usr/include`、MinGW 头等)、`engine/`(引擎模块有独立的覆盖率工作流); - **C++ 模块剔除**:`agent_info`、`sca`、`vulnerability_scanner`、`router`、`inventory_sync`、`content_manager`、`indexer_connector` 以及对应的 C 桥接文件 `wm_router.c`、`wm_content_manager.c` 等——这些模块拥有各自的 CI 覆盖率流水线; - **Agent 目标专属剔除**(`TARGET_LCOV_EXTRA_REMOVE`):`wm_database.c`、`authd-config.c`、`remote-config.c`、`wazuh_db-config.c`、`shared/os_crypto/shared/*`——这些是服务端专属代码或测试仅覆盖服务端路径的文件,从 agent 报告中移除以保持统计准确性。 该 CMakeLists 还要求构建环境存在 `lcov`、`gcov`、`genhtml` 三个工具,缺失即 `FATAL_ERROR`;这正是 Docker 镜像预先装好这些工具的原因。 ## 六、常见使用示例 ```bash # 标准执行(拉镜像 → 全量测试 → 生成报告) ./unit-tests.sh # 8 个并行任务加速编译(适合多核机器) ./unit-tests.sh --jobs 8 # 仅清理上次的 result-*.txt 与 *.log ./unit-tests.sh --clean # 不重跑测试,仅基于已有结果重新生成 Markdown 报告 ./unit-tests.sh --results # 本地构建测试镜像(无需访问 ghcr.io) ./unit-tests.sh --build-image【免费下载链接】wazuhWazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.项目地址: https://gitcode.com/GitHub_Trending/wa/wazuh
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考