This repository was archived by the owner on Apr 5, 2026. It is now read-only.
feat: --stats-allow-net CIDR for custom stats access ranges #67
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # ============================================================================= | |
| # Fuzz Testing — PR Regression Guard | |
| # ============================================================================= | |
| # | |
| # Runs each fuzz target for 60 seconds on every push/PR to master. | |
| # This is a fast smoke test: "Did this code change introduce a parser crash?" | |
| # | |
| # For deep coverage exploration (30 min/target, corpus persistence, auto-filed | |
| # issues on crash), see the weekly scheduled campaign in fuzz-scheduled.yml. | |
| # | |
| # Targets: | |
| # - fuzz_tls_server_hello — TLS 1.3 ServerHello record validation | |
| # - fuzz_tls_client_hello — SNI extraction + cipher suite parsing | |
| # - fuzz_http_request — HTTP request state machine (/stats endpoint) | |
| # | |
| # All targets run with ASan + UBSan + libFuzzer (coverage-guided). | |
| # See fuzz-scheduled.yml header for detailed explanation of why fuzzing | |
| # matters for a public-facing network parser like MTProxy. | |
| # ============================================================================= | |
| name: Fuzz Testing | |
| on: | |
| push: | |
| branches: [ "master" ] | |
| pull_request: | |
| branches: [ "master" ] | |
| jobs: | |
| fuzz: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y clang libssl-dev zlib1g-dev | |
| - name: Build fuzz targets | |
| run: make fuzz CC=clang | |
| # 60s per target — enough to catch regressions from code changes, | |
| # not enough for deep exploration (that's what fuzz-scheduled.yml does) | |
| - name: Run fuzz tests (60s each) | |
| run: make fuzz-run FUZZ_DURATION=60 | |
| - name: Upload crash artifacts | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: fuzz-crashes | |
| path: | | |
| fuzz/crash-* | |
| fuzz/oom-* | |
| fuzz/timeout-* |