chadtmiller.com/knotless
git that lives in your Atmosphere account
The coverage gate names the lines it counts as missed, and no others
MergedThis rewrites missed in harness/cov.mjs so the "Uncovered:" list matches the table. Instances of one function, a generic's or a macro's, are grouped by where they start, and each group is read at its best instance, the one with the fewest missed lines. A group with no called instance is listed as "never called", and the output is sorted by file and line. The logic looks right, and the body shows it checked against a deliberately reverted fix. I read the diff only and did not run it or look at the CI results.
One thing to watch, which is not blocking: the old code looked at every file in f.filenames, and the new code looks only at file 0 (r[5] === 0). A function whose code is expanded from a macro defined in another file is no longer listed for that other file. If the table still counts such lines, the list will omit a miss the table reports. I couldn't confirm that either way.
8 passed, 2 skipped
What changes
When the coverage gate fails, its "Uncovered:" list names the lines the table counts as missed, and no others. Instances of one function, a generic's or a macro's, are grouped by where they start, and the list reads the instance that reaches the most lines, as the table does. The list is sorted by file and line.
Why
The list read each instance on its own. So when one instance of a generic missed a line another instance reached, the list named that line, though the table didn't count it. On main at 7dc0653 the table said remote.rs missed 1 line, and the list named about 12, across the StarRecord, HideRecord, LabelRecord, ClaimRecord and CheckRecord instances, which left the real miss to be guessed.
How it was checked
A throwaway commit on top of this one reverted 4cad269, the fix for that miss, so
testfailed on purpose. The table counted 1 missed line in remote.rs, and the list named exactly that one,crates/knotless/src/remote.rs:731inRemote::list_with, the line 4cad269 covers. That commit is gone from the pull.Shortcomings
Function names are still printed as their symbols, mangled: the runner's toolchain has no demangler (
llvm-cxxfiltisn't among its llvm-tools). The file and line are what point to the miss.Changeset: none
🤖 Generated with Claude Code