• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

coverallsapp / coverage-reporter / 31848710948
95%

Build:
DEFAULT BRANCH: master
Ran 14 Aug 2026 11:01PM UTC
Jobs 1
Files 44
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

14 Aug 2026 10:59PM UTC coverage: 94.408% (+0.2%) from 94.24%
31848710948

push

github

web-flow
feat: LuaCov support (#190)

* spec(fixtures): add LuaCov files

* spec: add LuaCov context to parser_spec

* spec: add luacov_parser_spec

* feat: add a parser to LuaCov reports

* refactor: add LuaCovParser to the list of available parsers

* lint: exclude cyclomatic complexity for LuaCov

* docs(README): include LuaCov

* fix: use a descriptive block parameter in `luacov_parser_spec`

* fix(luacov): drop separator line, fix mislabeled fixture, guard matches?

Three fixes on top of #190:

1. LuaCov's DefaultReporter writes a blank line after each file section
   (`on_end_file`), which the parser counted as a source line. Every file
   report therefore carried one spurious trailing `nil` -- a 19-line
   test.lua produced a 20-entry coverage array. Drop that separator when
   closing a section. A source file that genuinely ends in a blank line
   keeps its entry, because LuaCov emits both. The specs now also assert
   coverage.size against the real line count of the fixture, so this
   cannot silently regress.

2. spec/fixtures/luacov/second-header-content-empty/luacov.report.out was
   byte-identical to first-header-content-empty: the blanked line was
   line 2, the *first* header. The test passed without ever exercising
   the second header. Rebuilt from the valid single-file report with only
   line 25 ("Summary") blanked, so it now differs from a passing fixture
   in exactly the property under test.

3. `matches?` lacked the `rescue Exception` guard every other
   content-reading parser has (clover, cobertura, jacoco, golang,
   coveralls, coveragepy). LuaCovParser is registered ahead of those, so
   an unreadable file that used to be skipped could raise out of
   Parser#parse_file.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: James Kessler <afinetooth@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

64 of 66 new or added lines in 2 files covered. (96.97%)

1013 of 1073 relevant lines covered (94.41%)

2.11 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
96.92
src/coverage_reporter/parsers/luacov_parser.cr
Jobs
ID Job ID Ran Files Coverage
1 31848710948.1 14 Aug 2026 11:01PM UTC 44
94.41
GitHub Action Run
Source Files on build 31848710948
  • Tree
  • List 44
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #31848710948
  • cac5e097 on github
  • Prev Build on master (#31826469729)
  • Next Build on master (#31849215050)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc