The Binary I Ship Is the Binary I Want to Test

This article expands on my OpenSouthCode 2026 talk. I have a slightly awkward question for anyone who collects code coverage in CI: Are you testing the same binary that you ship? For many projects, the honest answer is no. Traditional coverage starts at compile time. Go builds need -cover. GCC uses --coverage, shorthand for -fprofile-arcs -ftest-coverage when compiling and -lgcov when linking. Clang’s LLVM source-based coverage uses -fprofile-instr-generate -fcoverage-mapping. llvm-profdata indexes the raw profile, and llvm-cov creates the report....

August 22, 2026 · 9 min