Вопрос

У меня есть одинаковые исходные файлы (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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top