Я использую 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 (на всякий случай, если данные актуальны)
Спасибо!