Regeldekking: de meting van record
De "~95 % regeldekking" op de README-badge, in de README-tabel met CI (continue integratie), op de beginpagina's van crates.io en PyPI (Python Package Index), op de kshana.dev-pagina over regeldekking en in het technisch rapport is deze meting, afgerond op het dichtstbijzijnde hele procent. tests/coverage_figure_doc_sync.rs faalt als een van die zes plaatsen een ander cijfer vermeldt dan het hieronder vastgelegde, zodat de volgende nieuwe meting ze alle zes samen laat meebewegen of geen enkele.
| Gemeten | 95.35 % — 55.970 van 58.697 regels |
| Commit | db796dd (engine 0.29.0, de tag v0.29.0) |
| Uitvoeren | GitHub Actions, job coverage in ci.yml, run 36809850252, 2026-10-01 |
| Hulpmiddel | cargo tarpaulin --engine llvm (op LLVM gebaseerde broninstrumentatie) |
| Reikwijdte | src/, met uitzondering van de gegenereerde gegevenstabellen src/*_data.rs en het dunne CLI-ingangspunt (opdrachtregelinterface) src/main.rs; tests/ en web/ worden niet gemeten |
| Artefact | coverage-lcov (lcov.info, 290 bronbestanden) bij die run |
| Ondergrens | dezelfde job faalt onder 85 % (--fail-under 85): de ondergrens wordt bij elke push afgedwongen; het cijfer hierboven is een vastlegging, geen poort |
De opdracht, letterlijk uit .github/workflows/ci.yml:
cargo tarpaulin --engine llvm --out Lcov --output-dir coverage \
--exclude-files 'src/*_data.rs' --exclude-files 'src/main.rs' \
--exclude-files 'tests/*' --exclude-files 'web/*' \
--timeout 3600 --fail-under 85
Re-measuring#
Elke push naar main voert de job opnieuw uit en voegt een verse lcov.info toe. Om het gepubliceerde cijfer te verschuiven, downloadt u het artefact van een groene run en telt u het op:
gh run download <run-id> -n coverage-lcov -D /tmp/cov
awk -F: '/^LF:/{f+=$2} /^LH:/{h+=$2} END{printf "%.2f%% (%d/%d)\n", 100*h/f, h, f}' /tmp/cov/lcov.info
werk daarna de tabel hierboven en de zes plaatsen in dezelfde commit bij; de doc-sync-test noemt elke plaats die u mist.
Geschiedenis#
Het cijfer is opnieuw gemeten, niet opnieuw getypt: 95,63 % op commit b1d350d (engine 0.27.2 + niet-uitgebracht, run 35934579709, 2026-09-24, 37.697 van 39.419 regels, gepubliceerd als ~96 %), herzien naar 95,35 % op 0.29.0 (hierboven), wat afrondt op ~95 %: de code groeide met 19.278 gemeten regels en de nieuwe regels worden iets minder gedekt dan de oude; 95,85 % bij v0.17.0 (commit 1daa012, 2026-06-14, gepubliceerd als ~96 %), en ~97 % in twee eerdere release notes (CHANGELOG.md, als geschiedenis gelaten). paper/kshana-technical-report.md zei "near 97 %" totdat het met deze vastlegging in overeenstemming werd gebracht; het is nu de zesde plaats die de test vastpint.