Как разделить информацию о покрытии, записанную в одни и те же файлы .gcda, созданные несколькими приложениями, для lcov, чтобы различать результаты - PullRequest
0 голосов
/ 05 мая 2020

Я попытался упростить здесь свою задачу. Я скомпилировал два приложения CPP для настройки арки с машины ubuntu x86. Эти 2 приложения включены почти в один и тот же набор файлов. cpp. Лишь несколько файлов. cpp различаются для обоих, что делает эти два приложения разными. Я использовал -fprofile-arcs -ftest-охват в моем файле make.

Моя структура исходных каталогов выглядит так. У них будут файлы .gcno, сгенерированные после сборки.

/project/source/
a.cpp
b.cpp
c.cpp
d.cpp
app1_main.cpp
app2_main.cpp

Инструкции по сборке, например:

arm-marvell-linux-gnueabi-g++ -fprofile-arcs -ftest-coverage app1_main.cpp -o app1_main  a.cpp b.cpp c.cpp
arm-marvell-linux-gnueabi-g++ -fprofile-arcs -ftest-coverage app2_main.cpp -o app2_main  a.cpp b.cpp d.cpp

После сборки у меня есть файлы ниже в

/project/source/:` 

    app1_main
    app1_main.gcno
    app2_main
    app2_main.gcno

Теперь я копирую оба вышеуказанных двоичных файла на машину и пытаюсь запустить оба, поскольку каждое приложение зависит от полной функциональности. Я вижу .gcda, созданный в каталоге / project / source на машине arm.

Теперь я использую lcov & gen html для создания отчетов о покрытии. Они генерируют отчет о покрытии для общих файлов a. cpp и b. cpp, но проблема, которую я вижу, заключается в том, что этот отчет о покрытии принадлежит обоим двоичным файлам app1_main и app2_main. Как мне дифференцировать это покрытие, чтобы я мог сказать, сколько процентов поступает от app1_main, а другие от app2_main ?? ?

Заранее спасибо.

...