标签: llvm-cov

如何从llvm-cov生成.gcov文件?

我在Xcode 7上创建了一个生成代码覆盖率数据的项目.

在其DerivedData文件夹中,我可以运行llvm-cov show:

/usr/local/opt/llvm/bin/llvm-cov show -instr-profile Build/Intermediates/CodeCoverage/testetestes/Coverage.profdata Build/Intermediates/CodeCoverage/testetestes/Products/Debug-iphonesimulator/testetestes.framework/testetestes
Run Code Online (Sandbox Code Playgroud)

这将产生如下输出:

/Users/marcelofabri/Desktop/testetestes/testetestes/Example.swift:
   |    1|//
   |    2|//  Example.swift
   |    3|//  testetestes
   |    4|//
   |    5|//  Created by Marcelo Fabri on 09/06/15.
   |    6|//  Copyright © 2015 Marcelo Fabri. All rights reserved.
   |    7|//
   |    8|
   |    9|import UIKit
   |   10|
   |   11|class Example: NSObject {
  1|   12|    func testando() {
  1|   13|        if let url = NSURL(string: "dasdas") {
  1|   14|            print("ae \(url)")
  0|   15|        } else {
  0|   16| …
Run Code Online (Sandbox Code Playgroud)

code-coverage llvm xcode7 llvm-cov

11
推荐指数
1
解决办法
5965
查看次数

让 llvm-cov 与 codecov.io 对话

我正在(终于!)为我全新的 C++ 项目设置代码覆盖率监控。由于我需要一些高级 C++20 功能(读取、协程),我将其clang 6用作编译器。

现在,我按照本指南了解如何为您的项目进行基本代码覆盖,一切都像魔术一样工作。如果我做:

clang++ -fprofile-instr-generate -fcoverage-mapping test.cpp -o test.out
LLVM_PROFILE_FILE="coverage/test.profraw" ./test.out
llvm-profdata merge -sparse coverage/test.profraw -o coverage/test.profdata
llvm-cov show ./test.out -instr-profile=coverage/test.profdata
Run Code Online (Sandbox Code Playgroud)

我在我的终端上收到一份漂亮的彩色报告,告诉我哪些内容被覆盖,哪些未被覆盖。

到现在为止还挺好!我以为我已经接近我想要的东西了,但是当我试图将报告上传到codecov.io时,痛苦就开始了。

我尝试了几件事,包括:

  • https://codecov.io/bash在我的coverage文件夹上运行他们的脚本,希望它可能会赶上我的test.profdata. 没有骰子,这是有道理的,因为甚至llvm-cov需要可执行文件的路径才能运行。

  • 使用export功能:运行时llvm-cov export --instr-profile=coverage/test.profdata ./test.out我得到一个漂亮的 JSON 文件(通过终端)。我尝试将输出放入一个coverage.json文件中,该文件实际上已上传,但是 codecov 只是说解析它时出错,没有进一步的信息。

我感觉完全迷失了。在他们的网站上,一切似乎都是黑箱式的,我只是不明白如何完成任何不完全符合他们可以管理的情况的事情。

我如何才能使用 codecov 进行此操作?如果 codecov 无法处理我的报告,是否还有其他等效的在线代码覆盖率可用于使其正常工作?

code-coverage llvm-cov codecov

9
推荐指数
1
解决办法
978
查看次数

llvm-cov 如何在 Ubuntu 18.04 上安装?

我尝试安装 clang-9、clang-9-tools、llvm-9 和 llvm-9-tools 以获得程序 llvm-cov。这些软件包似乎都不包含 llvm-cov,这让我想知道哪个软件包包含它。

如何在 Ubuntu 18.04 上安装最新版本的 llvm-cov?

llvm llvm-cov

5
推荐指数
1
解决办法
3293
查看次数

如何过滤 llvm-cov 代码覆盖率报告中的文件?

来自llvm-cov 文档

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

llvm-cov show 命令使用配置文件数据 PROFILE 逐行显示二进制文件 BIN 的覆盖范围。可以选择对其进行过滤以仅显示 SOURCES 中列出的文件的覆盖范围。

我正在使用以下命令:

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

codecov_source_files带有这一行的文件在哪里:

*Router.swift

所以基本上我想要的是报告只包含带有后缀的文件: Router.swift

但是我得到了一个包含项目中所有类的 Coverage.report。

我错过了什么?

bash xcode code-coverage llvm-cov

4
推荐指数
1
解决办法
3258
查看次数

标签 统计

llvm-cov ×4

code-coverage ×3

llvm ×2

bash ×1

codecov ×1

xcode ×1

xcode7 ×1