Code coverage
=============

Documentation:
https://gcc.gnu.org/onlinedocs/gcc/Invoking-Gcov.html
http://ltp.sourceforge.net/coverage/lcov.php
https://wiki.documentfoundation.org/Development/Lcov
https://linux.die.net/man/1/lcov

0. Use lcov 1.12 or newer.
   Make sure that /etc/lcovrc or your ~/.lcovrc contains
     geninfo_auto_base = 1
   (Without it, you get many more warnings in step 4.)

1. Configure in source directory (no VPATH build) with
   $ ./configure CC="gcc --coverage" CPPFLAGS=-Wall
   Why in the source directory?
   Because in a VPATH build, there are more files that create trouble in
   steps 4 and 5 (po-gram-gen.[yc], cldr-plurals.[yc], and more).

2. Compile:
   $ make
   This step creates many *.gcno files.

3. Run:
   $ rm -f `find . -name '*.gcda'`
   $ make check
   This step creates many *.gcda files.

4. $ lcov --capture --directory . --output-file coverage.info
   You get warnings about
     c-ctype.h ostream.h ostream.oo.h styled-ostream.h term-ostream.h unistr.h xalloc.h
     plural.c plural.y
   Handle them by making symlinks:
   $ for f in c-ctype.h ostream.h ostream.oo.h styled-ostream.h term-ostream.h unistr.h xalloc.h; do
       ln -sf ../gnulib-lib/$f gettext-tools/src/$f
     done
   $ for f in plural.c plural.y; do
       ln -sf ../../gettext-runtime/intl/$f gettext-tools/intl/$f
       ln -sf ../../gettext-runtime/intl/$f gettext-tools/src/$f
     done

5. $ genhtml coverage.info --output-directory lcov.out

6. $ xdg-open lcov.out/index.html

7. When done:
   $ rm -f `find . -name '*.gcno'` `find . -name '*.gcda'`
