clang-tidy-infra/CTIT

GitHub: clang-tidy-infra/CTIT

CTIT 是一个 clang-tidy 集成测试工具,支持通过 GitHub Issue 或本地 CLI 在真实开源 C/C++ 项目上验证 clang-tidy 检查改动的实际效果。

Stars: 2 | Forks: 0

# CTIT 作为公共服务 **CTIT**(Clang Tidy Integration Tester)会在真实的开源 C/C++ 项目上运行你的 clang-tidy 检查更改。你可以通过两种方式使用它: - **GitHub 服务**:创建一个包含 PR URL 和检查名称的 issue;该服务会构建你的补丁,在支持的项目上运行检查,并将结果回复到该 issue。 - **Python 包**:安装 `ctit` 包,并在本地使用 `ctit` CLI 来克隆项目、配置构建、运行分析并生成报告。 该服务的灵感来源于 [Yingwei Zheng (dtcxzyw) 的 llvm-fuzz-service](https://github.com/dtcxzyw/llvm-fuzz-service),后者为 LLVM 的自动模糊测试提供了一套自动化工作流。 ## 使用方法 1. 创建一个新的 issue,格式如下: [PR_URL] [CHECK_NAME] [OPTION_1]: [VALUE_1] [OPTION_2]: [VALUE_2] - PR_URL:clang-tidy PR 的 URL。 - CHECK_NAME:你要运行的 clang-tidy 检查的名称(例如 `bugprone-argument-comment`)。 - OPTIONS(可选):检查选项的键值对。检查名称前缀会自动添加。 示例: https://github.com/llvm/llvm-project/pull/123456 readability-identifier-naming VariableCase: camelBack VariablePrefix: v_ 2. 为该 issue 打上 `cpp` 或 `c` 标签。 3. 等待 CI 运行。该服务将会: - 应用你 PR 中的补丁。 - 构建修改后的 `clang-tidy`。 - 在支持的项目上运行集成测试。 - 在该 issue 下回复报告评论。 ## 项目 - [Cppcheck](https://github.com/danmar/cppcheck) - [LLVM/Clang](https://github.com/llvm/llvm-project) - [Doxygen](https://github.com/doxygen/doxygen) - [POCO](https://github.com/pocoproject/poco) - [Abseil](https://github.com/abseil/abseil-cpp) - [stdexec](https://github.com/NVIDIA/stdexec) - [curl](https://github.com/curl/curl) ## 本地开发 要安装开发依赖项,请运行: ``` make activate ``` ### Shell 自动补全 要为 `ctit` 命令启用 Tab 补全: **Bash:** ``` echo 'eval "$(register-python-argcomplete ctit)"' >> ~/.bashrc source ~/.bashrc ``` **Zsh:** ``` echo 'eval "$(register-python-argcomplete ctit)"' >> ~/.zshrc source ~/.zshrc ``` **Fish:** ``` register-python-argcomplete --shell fish ctit > ~/.config/fish/completions/ctit.fish ``` ## TODO - 添加 `mp-units`,由 @zwuis 建议
标签:C/C++, Clang-Tidy, GitHub集成, SOC Prime, 事务性I/O, 云安全监控, 开发工具, 文档结构分析, 逆向工具, 静态分析