Как отфильтровать файлы в отчете о покрытии кода 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

Другие вопросы по тегам