Skip to content

HTML coverage reports undercovered regions while JSON shows 100% #479

@codewriter3000

Description

@codewriter3000

Summary
Running cargo llvm-cov --html produces an HTML report that shows 100% line coverage for a file, while the JSON export from the same run reports uncovered regions for that file. This makes the HTML and JSON outputs look inconsistent when trying to correlate “missing” coverage.

Steps to reproduce

  1. Clone: https://github.com/codewriter3000/window_registry
  2. Run:
    cargo llvm-cov --workspace --all-features --show-missing-lines --html
  3. Open the HTML report at:
    index.html

Actual result

  • HTML shows region coverage as 95.45% (84/88).
  • JSON export reports region coverage at 100%.
  • Example: shared.rs has uncovered regions on lines with ? tooltips in the HTML (e.g., line 41 and line 58 in the HTML view), yet line coverage remains 100% and those lines are not flagged as missing lines.

Relevant artifacts:

  • HTML summary: index.html
  • HTML file view:
    shared.rs.html
  • JSON export: coverage.json

Expected result

  • The HTML and JSON outputs should align on what is considered “missing.”
  • If uncovered regions exist for a line, I expect either:
    • line coverage to drop in HTML/JSON, or
    • “missing lines” to clearly match the JSON segments with count=0.

Environment

  • OS: Debian GNU/Linux 12 (bookworm)
  • rustc: 1.89.0 (29483883e 2025-08-04)
  • cargo: 1.89.0 (c24e10642 2025-06-23)
  • cargo-llvm-cov: 0.8.4
  • llvm-cov: 20.1.7-rust-1.89.0-stable

Edit:

  • Fixed typo

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions