I am using lcov and genhtml to generate code coverage reports. With the following directory structure, I am able to get the code coverage for the source files located in the tests/ directory, but am unable to get code coverage for the my_file.c file in my src/ directory.
src/
my_file.c
my_file.h
tests/
AllTests.c
CuTest.c
CuTest.h
my_file_tests.c
objects/
AllTests.gcda
AllTests.gcno
AllTests.o
CuTest.gcda
CuTest.gcno
CuTest.o
my_file.gcda
my_file.gcno
my_file.o
my_file_tests.gcda
my_file_tests.gcno
my_file_tests.o
Invoking the lcov command from the tests directory:
lcov -b . --directory objects/ -c -o ./coverage/app.info
Capturing coverage data from objects/
Found gcov version: 4.4.3
Scanning objects/ for .gcda files ...
Found 4 data files in objects/
Processing objects/AllTests.gcda
Processing objects/my_file_test.gcda
Processing objects/CuTest.gcda
Processing objects/my_file.gcda
geninfo: WARNING: gcov did not create any files for /home/me/workspace/project/tests/objects/my_file.gcda!
Finished .info-file creation
Upgrading from lcov 1.7 to 1.9 fixed this issue for me. Version 1.9 is available from http://ltp.sourceforge.net/coverage/lcov.php