Мне интересно, есть ли возможность сказать lcov игнорировать некоторые строки в исходных файлах, т.е. не сообщайте о них как о непосещенных. Я ищу решение, которое можно вставить в сам код, например:
int some_method(char some_var, char some_other_var)
{
if(some_var == 'A')
{
if(some_other_var == 'B')
{
/* do some real stuff here */
}
else
{
LCOV_DO_NOT_REPORT_NEXT_LINE // **<-- this?? **
NOT_IMPLEMENTED("A*")
}
}
else
{
NOT_IMPLEMENTED("*")
}
И необходимый фон:
Большой кусок кода, подобный приведенному выше, тестируется в серии модульных тестов, но, поскольку этот код все еще находится в стадии разработки, существует множество NOT_IMPLEMENTED("A*")
макросы, которые просто выводят на экран сообщение с номером строки / именем файла и выходят из приложения. Для не реализованных веток нет тестов, очевидно, они будут написаны, когда функция будет реализована.
Однако, lcov сообщает об этих NOT_IMPLEMENTED
линии, и они выглядят очень некрасиво в отчете о покрытии (то есть: они имеют большое соотношение красных линий).
Возможно ли то, что я прошу, или мы просто должны с этим жить?
Вы можете использовать следующее в качестве комментариев в источнике.
От http://ltp.sourceforge.net/coverage/lcov/geninfo.1.php
- LCOV_EXCL_LINE
- Линии, содержащие этот маркер, будут исключены.
- LCOV_EXCL_START
- Отмечает начало исключенного раздела. Текущая строка является частью этого раздела.
- LCOV_EXCL_STOP
- Отмечает конец исключенного раздела. Текущая строка не является частью этого раздела.