Add comprehensive coverage infrastructure with clang source-based coverage
This commit introduces a modern coverage infrastructure for Core Lightning: - Migrate from ad-hoc coverage script to integrated Makefile targets - Add LLVM source-based coverage support with per-test profraw organization - Integrate coverage collection into pytest framework via TailableProc - Add GitHub Actions workflow for nightly coverage reports - Add Taskfile.yml for convenient task automation - Add codecov.yml for Codecov integration - Add comprehensive coverage documentation in COVERAGE.md - Update contributor workflow docs with new coverage script path - Add coverage data files to .gitignore (*.profraw, *.profdata) - Remove obsolete contrib/clang-coverage-report.sh - Remove obsolete tests/conftest.py (now using pyln-testing markers) - Update pyproject.toml to include pyln-testing in main dependencies The new infrastructure automatically collects coverage data when CLN_COVERAGE_DIR is set, organizing profraw files by test name for granular analysis. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
31
codecov.yml
Normal file
31
codecov.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
coverage:
|
||||
status:
|
||||
project:
|
||||
default:
|
||||
# Coverage can decrease by up to 1% and still pass
|
||||
target: auto
|
||||
threshold: 1%
|
||||
patch:
|
||||
default:
|
||||
# New code should maintain coverage
|
||||
target: auto
|
||||
|
||||
comment:
|
||||
# Post coverage comments on PRs (if we add PR coverage later)
|
||||
behavior: default
|
||||
layout: "header, diff, files"
|
||||
require_changes: false
|
||||
|
||||
# Ignore files that shouldn't affect coverage metrics
|
||||
ignore:
|
||||
- "external/**"
|
||||
- "ccan/**"
|
||||
- "*/test/**"
|
||||
- "tools/**"
|
||||
- "contrib/**"
|
||||
- "doc/**"
|
||||
- "devtools/**"
|
||||
|
||||
# Don't fail if coverage data is incomplete
|
||||
codecov:
|
||||
require_ci_to_pass: false
|
||||
Reference in New Issue
Block a user