2014-02-20 5 views
0

Я пытаюсь получить покрытие html для теста с использованием gcc 4.8.2 и lcov 1.10. Я уверен, что мои исходники, объекты и файлы gcov находятся в одном месте и что я запускаю lcov из каталога, в котором я также запускал мой компилятор.lcov не работает должным образом для покрытия

Я получаю следующее сообщение об ошибке:

$ lcov --capture --directory "objs/i386/MinGW/Os_SingleCore_SC3 
/IocTest_tests_SingleCore_SC3" --output-file coverage.info 
Capturing coverage data from objs/i386/MinGW/Os_SingleCore_SC3/IocTest_tests_SingleCore_SC3 
Found gcov version: 4.8.2 
Scanning objs/i386/MinGW/Os_SingleCore_SC3/IocTest_tests_SingleCore_SC3 for .gcda files ... 
Found 3 data files in objs/i386/MinGW/Os_SingleCore_SC3/IocTest_tests_SingleCore_SC3 
Processing IocTest_tests_SingleCore_SC3/IocTest.gcda 
geninfo: WARNING: cannot find an entry for objs#i386#MinGW#Os_SingleCore_SC3#IocTest_tests_SingleCore_SC3#IocTest.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: no data found for /cygdrive/e/testRepo/WinPort-Os-cd354a27d1d9/WinPort/Os/Tests/OS_REQ/objs\i386\MinGW\Os_SingleCore_SC3\IocTest_tests_SingleCore_SC3\IocTest.c 
Processing IocTest_tests_SingleCore_SC3/OS_REQ.gcda 
geninfo: WARNING: cannot find an entry for objs#i386#MinGW#Os_SingleCore_SC3#IocTest_tests_SingleCore_SC3#OS_REQ.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: no data found for /cygdrive/e/testRepo/WinPort-Os-cd354a27d1d9/WinPort/Os/Tests/OS_REQ/objs\i386\MinGW\Os_SingleCore_SC3\IocTest_tests_SingleCore_SC3\OS_REQ.c 
Processing IocTest_tests_SingleCore_SC3/TestMain.gcda 
geninfo: WARNING: cannot find an entry for objs#i386#MinGW#Os_SingleCore_SC3#IocTest_tests_SingleCore_SC3#TestMain.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: no data found for /cygdrive/e/testRepo/WinPort-Os-cd354a27d1d9/WinPort/Os/Tests/OS_REQ/objs\i386\MinGW\Os_SingleCore_SC3\IocTest_tests_SingleCore_SC3\TestMain.c 
Finished .info-file creation 

ответ

0

Во-первых, я хотел бы предложить, чтобы проверить, если gcov возвращает правильные данные покрытия. Средство должно запускать инструмент gcov и проверять файл * .gcov для получения фактического результата. Если он возвращает какое-либо покрытие.

Во-вторых, вы можете использовать --Base-каталог, например

$ lcov --base-directory . --directory . -c -o gcov/lcov.info 
0

Я нашел эти шаги работы: https://codeflu.blog/2014/12/26/using-gcov-and-lcov-to-generate-beautiful-c-code-coverage-statistics/

Вы скомпилировать сначала -g -O0 и --coverage флагами? Вы скопировали файлы .gcno из каталога сборки в тот же каталог с файлами .gcda?

Вы пытались добавить параметр --ignore-errors gcov, source, graph? На самом деле это может быть работа с некоторыми файлами, и это гарантирует, что lcov продолжает проецировать какие-либо файлы проблем. Если вы найдете файлы, которые работают, вы можете отступить и выяснить, почему файлы, указанные выше, не работают для lcov. Возможно, они не имеют соответствующих файлов .gcno.

Смежные вопросы