Исключение определенных функций из результатов покрытия gcov / lcov - PullRequest
11 голосов
/ 02 июля 2010

Можно ли исключить определенные функции или строки кода из анализа покрытия gcov. Мой код содержит определенные функции, которые используются для отладки и не выполняются как часть моего набора тестов. Такие функции уменьшают процент покрытия, сообщаемый gcov. Я хотел бы исключить эти функции из результатов. Если это невозможно через gcov, возможно, это возможно через lcov, но я не смог понять это. Ваша помощь приветствуется.

1 Ответ

5 голосов
/ 02 сентября 2010

Я отфильтровываю некоторые исходные файлы, выполняя вывод lcov --capture через простой скрипт awk. Вывод lcov --capture имеет очень простой формат, а приведенный ниже скрипт awk отфильтровывает исходные файлы, соответствующие file_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"
}
...