Как отфильтровать файлы в отчете о покрытии кода llvm-cov?
Из документов llvm-cov:
llvm-cov show [options] -instr-profile PROFILE BIN [-object BIN,...] [[-object BIN]] [SOURCES]
Команда llvm-cov show показывает построчное покрытие двоичного файла BIN,... используя данные профиля PROFILE. При желании его можно отфильтровать, чтобы показать только покрытие для файлов, перечисленных в ИСТОЧНИКАХ.
Я использую следующую команду:
xcrun llvm-cov show -instr-profile "${PROFDATA}" "${BINARY}" codecov_source_files > Coverage.report
куда codecov_source_files
это файл с этой строкой:
*Router.swift
Поэтому в основном я хочу, чтобы отчет содержал только файлы с суффиксом: Router.swift
Но я получаю Coverage.report со всеми классами в проекте.
Что мне не хватает?
2 ответа
Это плохо сформулировано, но SOURCES
на самом деле это список имен файлов, а не имя файла, содержащего список имен файлов.
Они должны быть путями к фактическим исходным файлам на диске. К сожалению, он не поддерживает подстановочные знаки или регулярные выражения.
Редактировать: прочитав источник, я обнаружил, что вы также можете перечислить каталоги как SOURCES
и он вернется в них. Также есть недокументированный вариант -dump-collected-paths
который печатает файлы SOURCES
матч.
- вы можете использовать справку для поиска поддерживаемых команд
$ llvm-cov show --help
$ llvm-cov report --help
- Возможно, следующая команда — это функция, которую вы хотите
--ignore-filename-regex=<string> - Skip source code files with file paths that match the given regular expression