2017-05-26 531 views
3

llvm-cov docs如何過濾llvm-cov代碼覆蓋率報告中的文件?

llvm-cov show [options] -instr-profile PROFILE BIN [-object BIN,...] [[-object BIN]] [SOURCES]

由二進制代碼的行覆蓋率LLVM的冠狀病毒show命令顯示行 BIN,...利用配置文件數據資料。它可以選擇性地被過濾 只顯示SOURCES中列出的文件的覆蓋範圍。

我使用下面的命令:

xcrun llvm-cov show -instr-profile "${PROFDATA}" "${BINARY}" codecov_source_files > Coverage.report

哪裏codecov_source_files是該行一個文件:

*Router.swift

所以基本上我想要什麼是報告只包含文件機智h後綴:Router.swift

但是我收到了項目中所有類的Coverage.report。

我錯過了什麼?

回答

3

措辭不妙,但SOURCES實際上是文件名列表,而不是包含文件名列表的文件名。

它們需要成爲磁盤上實際源文件的路徑。不幸的是,它不支持通配符或正則表達式。

編輯:通過閱讀來源,我發現你也可以列出目錄爲SOURCES,它會遞歸到它們中。還有一個未公開的選項-dump-collected-paths,它打印SOURCES匹配的文件。

+0

感謝您發現'SOURCES'可能是一個文件夾。這應該記錄下來。以下是對Clang 4.0進行測試的其他示例。它只會顯示src_dir文件夾中的文件。 'llvm-cov show -format = html -instr-profile = default.profdata my_exe src_dir /> coverage.html' – phoenix

+1

您可能也想使用'-output-dir = PATH'來代替'> coverage.html'。我不相信後者給你的每個文件的輸出。 – Timmmm

+0

謝謝@Timmmm,'-output-dir'參數更好! – phoenix

相關問題