- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
有人能告诉我如何在arm处理器上执行代码覆盖率分析吗?
我可以通过编写测试用例并在我的计算机上运行它们来进行代码覆盖率分析,但是,在目标设备(arm处理器)上不安装代码覆盖率工具的情况下,当代码在arm处理器上运行时,是否有可能执行覆盖率分析?
这将节省很多时间,因为这样我就不会为嵌入的C代码中涉及的所有函数和条件显式地编写测试用例。
最佳答案
我对手臂没有特别的经验。我确实有在嵌入式系统中收集测试覆盖率数据的经验(作为嵌入式测试覆盖率工具的设计者)。
您需要以下信息:
一种工具,它以一种紧凑的格式,在嵌入式系统中以一种简单且易于定位的结构来收集运行时测试覆盖率数据。
嵌入式系统中的一些额外空间,足以容纳运行时测试覆盖率数据。在一些空间极其有限的嵌入式系统中,这可能是一个问题。
一种导出机制,可以在方便的时候将数据从嵌入式系统复制到开发系统。
工具中的一种导入机制,可以接受这种导出的数据
有了这三个元素,您现在可以收集测试覆盖率数据:
根据开发系统编写代码并编译它。
将对象文件导出到嵌入式系统。
运行嵌入式应用程序,以任何合适的方式执行测试
将覆盖范围数据导出到开发系统
导入到测试覆盖工具以解释结果。
我不能说“斗牛眼”,它确实做了某种仪器。我们的Test Coverage tools覆盖了多种语言(Java、C、C、C、C++等),并具有所有必要的属性(尽管我很难想象嵌入的PL/SQL应用程序!).
我们的工具将测试覆盖数据存储为密集填充的布尔字节/位向量(C和C++的选择,其他语言的字节向量)的密集块。这样可以最大限度地减少对嵌入式系统的额外存储需求。即使这太多,我们的工具也会让您收集应用程序中较小部分的测试覆盖率数据,并将结果组合起来,为整个嵌入式应用程序提供测试覆盖率。作为折衷,您可以运行多个测试,但至少可以这样做,而脚本可以帮助您减轻步骤的繁琐。
我们不指定如何从嵌入式系统导出测试覆盖向量(TCV),因为这将限制我们的工具可以处理哪些系统。我们提供了一个“标准”导出函数,它只需将向量块直接写入开发系统磁盘文件;在开发系统本身上执行测试覆盖率收集时(正如您已经在某种程度上表明您已经在执行的那样),该导出系统将不加更改地使用。导出函数将添加到插入指令的应用程序中,并与之编译/链接以启用使用。通常它在程序出口处被调用,但是您可以在应用程序中的任何方便点对它进行调用,包括由外部事件触发的点。该工具包含一个交互式组件,该组件将读取此类文件并构建摘要报告,并以交互方式显示已执行/未执行的代码。
在嵌入式上下文中,可以用自己的函数替换导出函数。它只有大约50行代码,所以没有太多可替换的代码。在大多数嵌入式系统上都有可用的额外I/O端口(并行输出位、串行端口,你可以命名它);其中一个代码是将二进制测试覆盖率数据感测到此输出位的例程。任何嵌入式工程师都可以编写一个位序列化器或一个发送字节到串行端口的代码块,而不会有什么麻烦。此时,可以从嵌入式系统导出测试覆盖率数据。
如果您的嵌入式系统有一个文件系统,那么如果不存在的话,代码的更改是很小的。
最后一步是捕获这个比特流。这需要在开发系统上构建一个运行的自定义程序,读取一些可用的硬件输入(很容易找到串行端口,因此这很流行),并在内存中重新生成测试覆盖率数据的位图像。默认导出函数可以复制到自定义程序中,只需稍作更改即可将此数据移动到磁盘文件中。在这一步之后,测试覆盖率交互组件可以读取覆盖率数据;它并不真正关心它来自哪里。
因此,通过对导出过程进行一些自定义,您可以在非常任意的嵌入上下文中使用我们的工具。(我们有一个客户使用它来测试嵌入笔记本电池的微处理器!)。需要一个称职的嵌入式工程师一天左右的时间来修改导出功能的嵌入式版本和开发系统常驻部分,然后您就可以心满意足地收集测试覆盖率。
这项技术已经由我们的客户用我们的C,C++,C语言和Java测试覆盖工具来实现。
关于c - BullsEye代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11554308/
#include using namespace std; class C{ private: int value; public: C(){ value = 0;
这个问题已经有答案了: What is the difference between char a[] = ?string?; and char *p = ?string?;? (8 个回答) 已关闭
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 7 年前。 此帖子已于 8 个月
除了调试之外,是否有任何针对 c、c++ 或 c# 的测试工具,其工作原理类似于将独立函数复制粘贴到某个文本框,然后在其他文本框中输入参数? 最佳答案 也许您会考虑单元测试。我推荐你谷歌测试和谷歌模拟
我想在第二台显示器中移动一个窗口 (HWND)。问题是我尝试了很多方法,例如将分辨率加倍或输入负值,但它永远无法将窗口放在我的第二台显示器上。 关于如何在 C/C++/c# 中执行此操作的任何线索 最
我正在寻找 C/C++/C## 中不同类型 DES 的现有实现。我的运行平台是Windows XP/Vista/7。 我正在尝试编写一个 C# 程序,它将使用 DES 算法进行加密和解密。我需要一些实
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
有没有办法强制将另一个 窗口置于顶部? 不是应用程序的窗口,而是另一个已经在系统上运行的窗口。 (Windows, C/C++/C#) 最佳答案 SetWindowPos(that_window_ha
假设您可以在 C/C++ 或 Csharp 之间做出选择,并且您打算在 Windows 和 Linux 服务器上运行同一服务器的多个实例,那么构建套接字服务器应用程序的最明智选择是什么? 最佳答案 如
你们能告诉我它们之间的区别吗? 顺便问一下,有什么叫C++库或C库的吗? 最佳答案 C++ 标准库 和 C 标准库 是 C++ 和 C 标准定义的库,提供给 C++ 和 C 程序使用。那是那些词的共同
下面的测试代码,我将输出信息放在注释中。我使用的是 gcc 4.8.5 和 Centos 7.2。 #include #include class C { public:
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我的客户将使用名为 annoucement 的结构/类与客户通信。我想我会用 C++ 编写服务器。会有很多不同的类继承annoucement。我的问题是通过网络将这些类发送给客户端 我想也许我应该使用
我在 C# 中有以下函数: public Matrix ConcatDescriptors(IList> descriptors) { int cols = descriptors[0].Co
我有一个项目要编写一个函数来对某些数据执行某些操作。我可以用 C/C++ 编写代码,但我不想与雇主共享该函数的代码。相反,我只想让他有权在他自己的代码中调用该函数。是否可以?我想到了这两种方法 - 在
我使用的是编写糟糕的第 3 方 (C/C++) Api。我从托管代码(C++/CLI)中使用它。有时会出现“访问冲突错误”。这使整个应用程序崩溃。我知道我无法处理这些错误[如果指针访问非法内存位置等,
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我有一些 C 代码,将使用 P/Invoke 从 C# 调用。我正在尝试为这个 C 函数定义一个 C# 等效项。 SomeData* DoSomething(); struct SomeData {
这个问题已经有答案了: Why are these constructs using pre and post-increment undefined behavior? (14 个回答) 已关闭 6
我是一名优秀的程序员,十分优秀!