Покриття рядків — офіційне вимірювання
«~95 % покриття рядків» на значку README, у таблиці CI (безперервна інтеграція) у README, на головних сторінках crates.io та PyPI (Python Package Index), на сторінці покриття рядків kshana.dev і в технічному звіті — це саме це вимірювання, округлене до найближчого цілого відсотка. tests/coverage_figure_doc_sync.rs завершується невдало, якщо будь-яка з цих шести поверхонь указує інше значення, ніж записане нижче, тож наступне повторне вимірювання змінює їх усі разом або жодної.
| Виміряно | 95.35 % — 55 970 із 58 697 рядків |
| Коміт | db796dd (рушій 0.29.0, тег v0.29.0) |
| Запустити | GitHub Actions, завдання ci.yml coverage, запуск 36809850252, 2026-10-01 |
| Інструмент | cargo tarpaulin --engine llvm (інструментування LLVM на рівні вихідного коду) |
| Сфера застосування | src/, без згенерованих таблиць даних src/*_data.rs і тонкої точки входу CLI (інтерфейс командного рядка) src/main.rs; tests/ і web/ не вимірюються |
| Артефакт | coverage-lcov (lcov.info, 290 вихідних файлів), прикріплений до цього запуску |
| Мінімум | те саме завдання завершується невдало нижче 85 % (--fail-under 85) — мінімум застосовується на кожному пуші; наведене вище значення є записом, а не бар'єром |
Команда дослівно з .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#
Кожен пуш до main повторно запускає завдання та прикріплює свіжий lcov.info. Щоб змінити опубліковане значення, завантажте артефакт із успішного запуску та підсумуйте його:
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
потім оновіть таблицю вище та шість поверхонь в одному коміті; тест синхронізації документації назве будь-які пропущені вами.
Історія#
Значення було виміряно повторно, а не передруковано: 95,63 % на коміті b1d350d (рушій 0.27.2 + невипущене, запуск 35934579709, 2026-09-24, 37 697 із 39 419 рядків, опубліковано як ~96 %), переглянуте до 95,35 % на 0.29.0 (вище), що округлюється до ~95 %: код зріс на 19 278 вимірюваних рядків, а нові рядки покриті трохи менше за старі; 95,85 % на v0.17.0 (коміт 1daa012, 2026-06-14, опубліковано як ~96 %) і ~97 % у двох раніших нотатках до випусків (CHANGELOG.md, залишено як історію). paper/kshana-technical-report.md казав «близько 97 %», доки його не привели до цього запису; тепер це шоста поверхня, яку фіксує тест.