【问题标题】:C++ code coverage tool for weird target platform用于奇怪目标平台的 C++ 代码覆盖工具
【发布时间】:2010-11-16 15:45:37
【问题描述】:

任何人都知道可以在以下条件下使用的 c++ 代码覆盖工具:

  1. 目标平台是 Nintendo WII dev.kit 内的 PowerPC CPU,运行自定义嵌入式操作系统。与 PC 交换数据的唯一方法是使用自定义专有 API(抱歉我的 NDA)。

  2. 编译器不是 Microsoft,不是 GCC,甚至不是命令行。也就是说,它是 Metrowerks IDE(当然是在 Windows 上运行)。

提前致谢!

【问题讨论】:

  • 这个问题无法回答。你只是在说你没有的,却忽略了你拥有的。什么PowerPC?什么嵌入式操作系统?什么专有API?什么编译器供应商?
  • Thorsten79:Nintendo WII dev.kit 中基于 PowerPC 的“Broadway”处理器 en.wikipedia.org/wiki/Broadway_(microprocessor) 自定义嵌入式操作系统、自定义专有 API(抱歉我的 NDA)Metrowerks IDE 和编译器
  • 您的意思是声明覆盖率吗?或者您在寻找个人资料信息(即以秒为单位的功能成本)?
  • Richard:声明覆盖率。即使只是在测试运行期间从未调用过的函数/方法的列表也足够了。
  • 存根是一个选项吗? IE。您能否提供您自己当前环境中没有的任何系统调用的基本实现,以便您可以在您的机器上运行该程序?那么你可以使用一个工具(比如 gcov,如果你在 linux 上的话)来为你提供覆盖信息?

标签: c++ code-coverage powerpc nintendo metrowerks


【解决方案1】:

你知道BullseyeCoverage。它是一个商业工具,支持大量的平台和编译器。如果你没有看到你的编译器,你可以给他们写一个查询。我没有在列表中找到 Metrowerks 编译器。

希望对您有所帮助,
风向标

【讨论】:

  • 是的。今天谷歌为我找到了它们,我给它们写了一条消息。顺便说一句,您在现实生活中使用过它吗?你满意吗?几年前我只使用过 Rational PureCoverage,但它只是 windows/linux/unix。
  • 抱歉耽搁了。我曾经为 Windows 和 Linux 评估过它。在我看来,这很直接。之后我没有在自动构建环境中使用这个工具。
【解决方案2】:

Cpp Test Coverage。该工具可以配置为在嵌入式系统中收集数据;您必须弄清楚如何从该系统内部将一组位导出到外部文件系统,如果您能做到,它可以向您显示精确的测试覆盖率。

Metrowerks 编译器是否有非 ANSI 标准的特殊语法?

【讨论】:

  • 我应该在哪里看到? Google 第一个结果:ieeexplore.ieee.org 上的科学文章,第二个结果:维基百科上的“代码覆盖率”,第三个结果:“CppTest”单元测试框架。 Metrowerks 有一些特殊的#pragma,但 AFAIK 它符合 ANSI。
  • 对不起,“Cpp 测试覆盖率”应该是一个链接,但我搞砸了。已修复,现在您可以点击链接了。
【解决方案3】:

我的商店一直在使用Covtool 的自定义版本。也许可以将其移植到您的环境中。

【讨论】:

  • 它接缝 Covtool 依赖于您可以在 C 预处理器之后和 C++ 编译器、优化器和链接器之前挂钩的事实。在 Metrowerks IDE 的情况下,假设是错误的。
【解决方案4】:

我用过Cantata。它适用于 Metroworks。它检测您的代码,因此您的应用程序不会全速运行。您只需要重写 IO 函数,以便使用自定义专有 API 进行输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-07
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    相关资源
    最近更新 更多