TL;DR: the current state of test coverage looks like: function: 59.85% (468/782) line: 56.17% (12111/21560) region: 53.61% (11280/21039)
but in case anyone's interested in actually reproducing my results: cd /tmp git clone https://github.com/landley/toybox.git toybox-coverage cd toybox-coverage export CC=clang export CFLAGS="-fprofile-instr-generate -fcoverage-mapping" export LDFLAGS="-fprofile-instr-generate -fcoverage-mapping" apply this patch because atexit() doesn't work in toybox: diff --git a/lib/xwrap.c b/lib/xwrap.c index c09923ba..3ee3ca89 100644 --- a/lib/xwrap.c +++ b/lib/xwrap.c @@ -39,6 +39,7 @@ void _xexit(void) { if (toys.rebound) siglongjmp(*toys.rebound, 1); + __llvm_profile_write_file(); _exit(toys.exitval); } make defconfig make export LLVM_PROFILE_FILE="/tmp/coverage/%p" TEST_ALL=1 make tests llvm-profdata-9 merge -sparse /tmp/coverage/* -o toybox.profdata llvm-cov-9 show ./toybox -instr-profile=toybox.profdata -show-instantiations=false -format html -output-dir=html-coverage google-chrome ./html-coverage/index.html _______________________________________________ Toybox mailing list Toybox@lists.landley.net http://lists.landley.net/listinfo.cgi/toybox-landley.net