С GCOV можно ли объединиться в файлы .GCDA?
-
02-10-2019 - |
Вопрос
У меня есть одинаковые исходные файлы (C и OBJ-C), компилируемые на две цели: исполняемый файл модуля и фактический продукт (который затем получает тестирование в интеграцию). Две цели наращиваются в разные места, поэтому файлы объектов, файлы .gcno и .gcda разделяются. Не все исходные файлы скомпилированы в тест на единицу, поэтому не все объекты будут существовать там. Все исходные файлы компилируются в сборку продукта.
Есть ли способ объединить два набора файлов .gcda, чтобы получить общий охват для модульных тестов и интеграционных тестов (поскольку они работают на сборке продукта)?
Я использую ЛГОВ.
Mac OS X 10.6, GCC 4.0
Спасибо!
Решение
Поскольку вы используете LCOV, вы должны быть в состоянии преобразовать файлы GCOV .GCDA в файлы LCOV и объединить их с LCOV --add-tracefile
.
От Manpage: Добавить содержимое TraceFile. Укажите несколько традовых полос, используя переключатель -A, чтобы объединить данные охвата, содержащихся в этих файлах, добавив счет для выполнения для соответствующих комбинаций теста и имени файла.
Другие советы
Наконец-то мне удалось решить мою проблему с помощью LCOV.
В основном то, что я сделал, это следующее:
- Составьте заявку с флагами
-fprofile-arcs -ftest-coverage --coverage
- Распределите копию приложения к каждому узлу.
- Выполните приложение в каждом узле параллельно. (Этот шаг генерирует в каталог приложений в хосте доступа Информация о покрытии)
- Пусть lacov делает его работу:
lcov --directory src/ --capture --output-file coverage_reports/app.info
- Создайте выход HTML:
genhtml -o coverage_reports/ coverage_reports/app.info
Я надеюсь, что это может помочь кому-то.
Я сливаюсь на LCOV Multi -D параметров, как показано ниже. Оно работает.
lcov -c -d ./tmp/ -d ./tmp1/ -o ./tmp/coverage.info