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, 云安全监控, 开发工具, 文档结构分析, 逆向工具, 静态分析