feat: update AI automation agents, add reviewer agent, enhance CI
CI / build-and-test (push) Successful in 53s
CI / sanitizer (push) Failing after 17s
CI / clang-tidy (push) Successful in 5s
CI / build-and-test (pull_request) Successful in 53s
CI / sanitizer (pull_request) Failing after 17s
CI / clang-tidy (pull_request) Successful in 5s

- Update cmake-expert agent: fix CMake version (3.22 not 4.1), add OpenSSL/xxHash deps
- Fix integrator agent: update stale test.py references to tests/integration/
- Fix test-writer agent: update integration test patterns for modular test structure
- Add reviewer agent: comprehensive PR review covering code, build, CI, docs, quality
- Enhance CI: add sanitizer job (ASan+UBSan) and clang-tidy static analysis job
This commit is contained in:
2026-07-19 19:28:21 +02:00
parent 1078b47955
commit d030ba655c
5 changed files with 230 additions and 44 deletions
+10 -12
View File
@@ -16,12 +16,12 @@ Design integration tests that verify the full transfer pipeline works end-to-end
- Custom framework in `tests/test_utils.h`
- Run: `./build/tests`
### 2. Integration Tests (existing — `test.py`)
### 2. Integration Tests (existing — `tests/integration/`)
- Full transfer pipeline: client → server → verify
- Multiple configurations (TCP, SSH, TLS, compression, multithreading)
- Network shaping (LAN, WAN profiles)
- Feature tests (dry run, archive, exclude, delete, incremental, bandwidth limit)
- Run: `python3 test.py`
- Run: `python3 -m pytest tests/ -v --tb=short`
### 3. New: Focused Integration Tests
When adding new features or fixing bugs, write targeted integration tests.
@@ -106,25 +106,23 @@ test ! -f /tmp/dst/.../extra.txt
### Gitea Workflow Structure (`.gitea/workflows/ci.yaml`)
The project uses Gitea Actions. Key jobs:
1. **Build** — compile on push/PR
2. **Unit tests**run `./build/tests`
3. **Integration tests** — run `python3 test.py` (light mode)
4. **Sanitizer builds** — ASan, TSan variants
1. **build-and-test** — compile, unit tests, integration tests on push/PR
2. **sanitizer**ASan + UBSan build and test (separate job)
3. **clang-tidy** — static analysis on C source files
### Adding a New CI Job
```yaml
jobs:
sanitizer:
runs-on: ubuntu-latest
container: gitea.tap-tap.win/taptap/fastsync-ci:v6
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y libzstd-dev libssl-dev
- name: Build with ASan
- name: Build with ASan + UBSan
run: |
cmake -B build -S . \
-DCMAKE_C_FLAGS="-fsanitize=address -fno-omit-frame-pointer" \
-DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address"
-DCMAKE_C_FLAGS="-fsanitize=address,undefined -fno-omit-frame-pointer -g" \
-DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address,undefined"
cmake --build build -j$(nproc)
- name: Run tests
run: ./build/tests
@@ -134,7 +132,7 @@ jobs:
After any code change:
- [ ] Unit tests pass: `./build/tests`
- [ ] Integration tests pass: `python3 test.py` (light mode at minimum)
- [ ] Integration tests pass: `python3 -m pytest tests/ -v --tb=short`
- [ ] Build clean: no warnings with `-Wall`
- [ ] No memory errors: ASan clean
- [ ] No thread errors: TSan clean (if threading involved)