Cobertura de linhas — a medição de referência oficial
A "cobertura de linhas de ~95 %" no selo do README, na tabela de CI (integração contínua) do README, nas páginas iniciais do crates.io e do PyPI (Python Package Index), na página de cobertura de linhas do kshana.dev e no relatório técnico é esta medição, arredondada para o percentual inteiro mais próximo. tests/coverage_figure_doc_sync.rs falha se qualquer uma dessas seis superfícies declarar um valor diferente do registrado abaixo, de modo que a próxima nova medição move todas juntas ou nenhuma.
| Medido | 95.35 % — 55.970 de 58.697 linhas |
| Commit | db796dd (motor 0.29.0, a tag v0.29.0) |
| Executar | GitHub Actions, ci.yml job coverage, execução 36809850252, 2026-10-01 |
| Ferramenta | cargo tarpaulin --engine llvm (instrumentação baseada em código-fonte do LLVM) |
| Abrangência | src/, excluídas as tabelas de dados geradas src/*_data.rs e o ponto de entrada enxuto da CLI (interface de linha de comando) src/main.rs; tests/ e web/ não são medidos |
| Artefato | coverage-lcov (lcov.info, 290 arquivos-fonte) anexado a essa execução |
| Piso | o mesmo job falha abaixo de 85 % (--fail-under 85) — o piso é aplicado a cada push; o valor acima é um registro, não uma barreira |
O comando, literal de .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#
Cada push em main reexecuta o job e anexa um lcov.info novo. Para mover o valor publicado, baixe o artefato de uma execução verde e some-o:
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
depois atualize a tabela acima e as seis superfícies no mesmo commit; o teste de sincronização de documentos aponta as que você deixar de fora.
Histórico#
O valor foi remedido, não redigitado: 95,63 % no commit b1d350d (motor 0.27.2 + não lançado, execução 35934579709, 2026-09-24, 37.697 de 39.419 linhas, publicado como ~96 %), revisto para 95,35 % na 0.29.0 (acima), que arredonda para ~95 %: o código cresceu em 19.278 linhas medidas e as linhas novas são cobertas um pouco menos que as antigas; 95,85 % na v0.17.0 (commit 1daa012, 2026-06-14, publicado como ~96 %) e ~97 % em duas notas de versão anteriores (CHANGELOG.md, deixadas como histórico). paper/kshana-technical-report.md dizia "perto de 97 %" até ser levado a este registro; agora é a sexta superfície que o teste fixa.