Files
Joseph MattielloandClaude Opus 4.7 8e05b86ec3 ci: code coverage (gcov + codecov)
Adds:
- Makefile: COVERAGE=1 toggle injects --coverage -O0 -g into FLAGS +
  LDFLAGS.  New \`make coverage\` target does clean + COVERAGE=1
  TEST_EXPORTS=1 build + make test + gcovr report.
- gcovr.cfg: filters to src/, excludes libretro-common, src/m68000,
  src/bios/jag*.c, test/.  Cobertura XML output.
- codecov.yml: per-PR patch threshold 0%, project threshold 1% (noise
  absorption), same ignore globs.
- c-cpp.yml: new \"coverage\" job runs make coverage and uploads via
  codecov-action@v5.  Token optional (public repo); set
  CODECOV_TOKEN secret to skip the anonymous-upload rate limit.
  continue-on-error: true so coverage runs are advisory.

Codecov requires the GitHub App to be installed on the libretro org
to post the per-PR comment + status -- one-time admin step.

Co-Authored-By: Claude Opus 4.7 <[email protected]>
2026-05-01 01:26:15 -04:00

27 lines
546 B
YAML

# Codecov config: per-PR coverage delta + project floor.
#
# Patch threshold = 0% means any drop in patch coverage flags red.
# Project threshold = 1% absorbs measurement noise from re-runs of
# nondeterministic tests.
coverage:
status:
project:
default:
threshold: 1%
patch:
default:
threshold: 0%
ignore:
- "libretro-common/**"
- "src/m68000/**"
- "src/bios/jag*.c"
- "test/**"
- "src/core/version.h"
comment:
layout: "reach, diff, flags, files"
behavior: default
require_changes: false