Опция lcov remove не удаляет данные покрытия, как ожидалось - PullRequest
0 голосов
/ 26 сентября 2018

Я использую lcov для генерации отчетов о покрытии.У меня есть файл трассировки (broker.info) с этим содержимым (показан соответствующий фрагмент):

$ lcov -r broker.info
...
[/var/lib/jenkins/jobs/ContextBroker-PreBuild-UnitTest/workspace/test/unittests/orionTypes/]
EntityTypeResponse_test.cpp                    | 100%    11| 100%   6|    -    0
...

[/var/lib/jenkins/jobs/ContextBroker-PreBuild-UnitTest/workspace/test/unittests/parse/]
CompoundValueNode_test.cpp                     | 100%    82| 100%  18|    -    0
...

[/var/lib/jenkins/jobs/ContextBroker-PreBuild-UnitTest/workspace/test/unittests/rest/]
OrionError_test.cpp                            |92.1%    38| 100%   6|    -    0
...

[/var/lib/jenkins/jobs/ContextBroker-PreBuild-UnitTest/workspace/test/unittests/serviceRoutines/]
badVerbAllFour_test.cpp                        | 100%    24| 100%   7|    -    0
...

Я хочу удалить всю информацию, соответствующую test/unittest файлам.

Я попытался использовать опцию -r, которая, в соответствии с man-страницей:

-r шаблон трассировки - удалить шаблон трассировки Удаление данных из файла трассировки.

Используйте этот переключатель, если вы хотите удалить данные покрытия для определенного набора файлов из файла трассировки.Дополнительные параметры командной строки будут интерпретироваться как шаблоны подстановочных знаков оболочки (обратите внимание, что, возможно, их необходимо экранировать соответствующим образом, чтобы предотвратить их расширение оболочкой в ​​первую очередь).Каждая запись файла в файле трассировки, которая соответствует хотя бы одному из этих шаблонов, будет удалена.

Результат операции удаления будет записан в стандартный вывод или файл трассировки, указанный с -o.

Только один-z, -c, -a, -e, -r, -l, --diff или --summary могут быть указаны одновременно.

Таким образом, я использую

$ lcov -r broker.info 'test/unittests/*' -o broker.info2

Насколько я понимаю, test/unittest/* соответствует файлам в test/unittest.Тем не менее, это не работает (примечание Deleted 0 files ниже):

Reading tracefile broker.info
Deleted 0 files
Writing data to broker.info2
Summary coverage rate:
  lines......: 92.6% (58313 of 62978 lines)
  functions..: 96.0% (6451 of 6718 functions)
  branches...: no data found

Я пробовал также эти варианты (тот же результат):

$ lcov -r broker.info "test/unittests/*" -o broker.info2
$ lcov -r broker.info "test/unittests/\*" -o broker.info2
$ lcov -r broker.info "test/unittests" -o broker.info2

Итак, возможно, я делаю что-тоне так?

Я использую lcov версии 1.13 (на всякий случай, если данные актуальны)

Спасибо!

1 Ответ

0 голосов
/ 26 сентября 2018

Я тестировал другие варианты, и, кажется, работает следующий, используя подстановочный знак в префиксе:

$ lcov -r broker.info "*/test/unittests/*" -o broker.info2

Возможно, это что-то новое в версии 1.13, потому что в версии 1.11, похоже, работаетбез подстановочного знака в префиксе ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...