Я пытаюсь определить свое тестовое покрытие. Для этого я компилирую свою программу с более новой версией gcc:
CC=/usr/local/gcc8/bin/gcc FC=/usr/local/gcc8/bin/gfortran ./configure.sh -external cmake -d
После компиляции с опцией --coverage
я запускаю свои тесты, и это создает файлы *.gcda
, *.gcno
и *.o.provides.build
. И если я запускаю что-то вроде:
> $ /usr/local/gcc8/bin/gcov slab_dim.f90.gcda [±develop ●]
File '/Local/tmp/fleur/cdn/slab_dim.f90'
Lines executed:0.00% of 17
Creating 'slab_dim.f90.gcov'
Что показывает мне, что gcov работает нормально. Однако, если я попытаюсь запустить lcov для этих результатов:
lcov -t "result" -o ex_test.info -c -d CMakeFiles/
Я получаю сообщения об ошибках, подобные этим, для каждого файла:
Processing fleur.dir/hybrid/gen_wavf.F90.gcda
/Local/tmp/fleur/build.debug/CMakeFiles/fleur.dir/hybrid/gen_wavf.F90.gcno:version 'A82*', prefer '408R'
/Local/tmp/fleur/build.debug/CMakeFiles/fleur.dir/hybrid/gen_wavf.F90.gcno:no functions found
geninfo: WARNING: gcov did not create any files for /Local/tmp/fleur/build.debug/CMakeFiles/fleur.dir/hybrid/gen_wavf.F90.gcda!
Это то же сообщение об ошибке, которое появляется при использовании системного стандарта /usr/bin/gcov
Это наводит меня на мысль, что lcov называет старый gcov, а не новый. Как заставить gcov использовать новую версию?