За исключением определенных функций от результатов охвата GCOV / LCOV
Вопрос
Можно ли исключить определенные функции или линии кода из анализа освещения GCOV. Мой код содержит определенные функции, которые используются для отладки и не осуществляются как часть моего тестового набора. Такие функции уменьшают процент покрытия, представленные GCOV. Я хотел бы исключить эти функции из результатов. Если это невозможно через GCOV, возможно, можно через ЛГОВ, но я не смог понять это. Ваша помощь ценится.
Решение
Я отфилярую определенные исходные файлы, запустив выход LCOV --Capture через простой скрипт awk. Выход LCOV --Capture имеет очень простой формат и скрипт awk ниже, фильтрует исходные файлы, соответствующие файлу_Pattern. Я думаю, что можно адаптировать скрипт, чтобы сделать его фильтрами функциями вместо имени файлов.
BEGIN {
record=""
}
/^SF/ {
if ( match ($0, "file_pattern" ) ) {
doprint = 0
} else {
doprint = 1
}
}
/^end_of_record$/ {
if ( doprint ) {
print record $0
}
record = ""
next
}
{
record=record $0 "\n"
}