/plushcap/analysis/cloudflare/go-coverage-with-external-tests

Go coverage with external tests

What's this blog post about?

The Go test coverage implementation is innovative as it allows setting a bit in a coverage bitmap when each code portion is executed. However, there's no straightforward way to obtain coverage data for tests run against the main version of a program. A workaround involves creating a dummy test that executes main(), compiling a binary with go test -c -cover and running only that test instead of the regular binary. This method has been used in RRDNS, a custom Go DNS server. To collect coverage information, run the test battery as usual and use gocovmerge to merge coverage profiles for unit tests.

Company
Cloudflare

Date published
Jan. 19, 2016

Author(s)
Filippo Valsorda

Word count
357

Hacker News points
1

Language
English


By Matt Makai. 2021-2024.