Можно ли исключить определенные функции или строки кода из анализа покрытия gcov. Мой код содержит определенные функции, которые используются для отладки и не используются как часть моего набора тестов. Такие функции уменьшают процент покрытия, указанный gcov. Я хотел бы исключить эти функции из результатов. Если это невозможно через gcov, возможно, это возможно через lcov, но я не смог понять это. Ваша помощь приветствуется.
Исключение определенных функций из результатов покрытия gcov/lcov
Ответ 1
Я отфильтровываю определенные исходные файлы, запуская вывод lcov -capture через простой awk script. Выход lcov -capture имеет очень простой формат, а awk script ниже фильтрует исходные файлы, соответствующие файлу_паттерна. Я думаю, что можно адаптировать script, чтобы сделать его фильтром вместо имен файлов.
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"
}