本主题概述了 C/C++test 与 QNX Momentics 的集成。
说明
C/C++test 插件通过标准 Eclipse 插件安装机制与 QNX Momentics IDE 集成;有关详细信息,请参阅C/C++test 作为插件安装 。
先决条件
许可证
您可以使用本地(机器锁定)许可证或从 Parasoft DTP 或 Parasoft 许可证服务器的独立实例提供的网络许可证运行 C/C++test 插件。有关如何配置许可证的详细信息,请参阅 许可证 。
使用 QNX 项目
为了执行静态分析或单元测试,C/C++test 必须从 QNX 项目中收集以下信息:
- 源文件的路径
- 编译命令行
- 链接器命令行
该信息是通过扫描 make 文件从 QNX Momentics IDE 项目结构描述中收集的。
扫描 Make 文件
- 选择您的项目并运行 C/C++test 测试配置。
- 构建过程开始,但是 make 文件执行的是带有选项扫描实用程序前缀的命令行,而不是使用实际的编译/链接命令行。命令行通常进行如下修改:
- 原始编译命令行:
qcc <options> <file>
- C++test 前缀编译命令行:
options_scanner <options> qcc <options> <file>
- 原始编译命令行:
- 选项扫描程序分析命令行并存储编译器/链接器选项,以供进一步使用。
构建过程完成后,C++test 将收集所有必要的数据。
项目配置
在开始测试之前,请确保正确设置了项目的编译器/链接器选项源。在大多数情况下,C/C++test 会自动检测必要的设置。编译器/链接器标志的源设置在【构建设置】屏幕中指定。要访问构建设置:
- 在【项目资源管理器】中右键单击项目节点,然后从快捷菜单中选择 属性 。
- 在左侧窗格中展开 Parasoft> C/C++test 类别,然后选择 构建设置 类别。
提供以下配置选项:
选项来源
从下拉菜单中选择收集编译器/链接器开关的策略。
要直接测试 QNX 项目,请从 QNX 构建系统中选择【使用选项。C++test 选项提取器旨在扫描 QNX make 文件。扫描编译器/链接器可执行文件的名称,编译器/链接器命令行以及用于启动编译/链接过程的系统环境。所有这些设置稍后将在 C++test 分析期间使用。
项目设置
- 构建命令行: 输入将启动您的构建系统的命令行。该系统可以是抽象的,但是默认情况下,假定使用基于 make 的系统,并且预设了适当的命令。此命令在项目的 Makefile 上执行您的 make,以扫描项目的编译和链接选项。因此,一个特殊的扫描器(隐藏在 ${CPPTEST_SCAN} 宏后面)代替了 C/C++ 编译器和链接器。-i 和 -B make 选项非常有用(有关更多信息,请参见计算 Make 种类)。
- 构建工作目录:指定从中启动构建命令的目录。
- 依赖文件:指定每次执行测试/构建操作时应检查是否有更改的所有文件。如果发现这些文件中有被修改,将重新执行构建命令。您应该输入作为项目选项来源的所有文件(或影响它们)。通常,这只是您的生成文件。
- 重置缓存 按钮:使您可以清除所有扫描的选项并在下一个测试操作上强制重新扫描(有关异常情况,请参阅Make 种类计算)。
编译器设置
编译器设置区域使您可以指定用于编译项目源代码和构建测试可执行文件的编译器集/工具。设置包括:
- 系列:从所有当前注册的编译器系列中选择适当的系列。使用 QNX® GCC 5.x.
单击 自动检测 以允许 C++test 根据存储在编译器配置目录中的编译器可执行文件和编译器版本正则表达式自动检测编译器系列。由于嵌入式解决方案使用了各种各样的编译器,因此自动检测可能并不总是能产生预期的结果。 - C 编译器: 指定 C 编译器可执行文件。
- C++ 编译器: 指定 C++ 编译器可执行文件。
- 连接器:指定链接器可执行文件。
选项
指定要包括的所有其他编译器或链接器选项,以及运行时库的位置。
- -
DPARASOFT_CPPTEST
默认添加到编译器选项中。之后,您可以添加任何其他选项。 - 您可以添加选项,但不能删除它们(除非您可以用负号覆盖原始选项,例如未定义符号等)。
- 此
${cpptest:original_options}
变量可用于访问原始项目选项。
另参见在 C/C++test 项目或“文件选项”面板中指定选项。
静态分析
在开始静态分析之前,请确认在【项目属性】面板的 Parasoft> C/C++test> 构建设置 区域中使用了适当的编译器设置。在大多数情况下,最好将【选项源】设置为来自 QNX 构建系统的使用选项。确认编译器设置正确后,您可以开始分析。
运行时库测试
本节涵盖单元测试 和Application Monitoring。
单元测试
构建用于测试 QNX 项目的 C/C++test 运行时库
对于嵌入式测试,必须先针对所选平台交叉编译 C++test 运行时库,然后才能执行单元测试。内置的“运行 QNX Momentics 测试”测试配置会自动完成此构建。
如果您需要手动构建 C++test 运行时库,请按照使用 C/C++test 运行时库 说明操作— 使用 QNX_5.mk
作为目标配置。
QNX 单元测试的测试配置
C/C++test 提供了一个专门用于测试 QNX 项目的测试配置模板。该测试配置位于“内置”>“嵌入式系统”>“ QNX”>“运行 QNX Momentics 测试”中。它涵盖了 QNX 项目的完整单元测试所需的所有步骤:
- 构建 C++test 运行时库
- 启动测试可执行文件
- 在远程 QNX 系统上执行测试可执行文件
- 收集结果
该测试配置只是一个模板,需要对其进行自定义以反映您的远程 QNX 系统配置,如下所示:
- 选择 Parasoft> 测试配置。
- 打开 内置> 嵌入式系统> QNX 树节点。
- 右键点击 运行 QNX Momentics 测试 然后选择 复制。
- 选择现在出现在用户定义下的重复测试配置。
- 打开 执行 选项卡
- 修改测试配置属性以反映您的远程 QNX 系统配置:
- QNX 目标: 目标主机地址
- QNX 目标测试目录:目标主机上将执行测试的目录
- QNX 目标用户名:用于连接目标主机的用户名
此测试配置基于 Windows 中可用的 rcp(允许远程复制)和 rsh(允许远程 shell 执行)工具。需要将远程 QNX 系统配置为允许来自 rcp 和 rsh 的远程调用。也可以修改测试执行流程并使用不同工具代替 rcp 和 rsh。
调试器测试用例
在 Eclipse 内部调试器模式下进行调试更多详细信息请参见:
应用程序监测
QNX 应用程序监视的测试配置
C/C++test 提供了一个测试配置模板,专门用于运行带有内存监测的 QNX 应用程序:内置>嵌入式系统>QNX>使用 QNX Momentics 的内存监视构建和运行应用程序。该测试配置提供了运行 QNX 应用程序监视所需的所有步骤,包括:
- 构建应用程序
- 在远程 QNX 系统上执行应用程序
- 收集结果
该测试配置只是一个模板。需要对其进行自定义以反映您的远程 QNX 系统配置。自定义它:
- 选择 Parasoft> 测试配置。
- 展开内置>嵌入式系统> QNX。
- 右键单击构建并运行应用程序与 QNX Momentics 的内存监测 然后从快捷菜单中选择 复制 。
- 选择添加到 用户定义 类别的新测试配置。
- 打开 执行 选项卡
- 修改测试配置属性以反映您的远程 QNX 系统配置:
- QNX 目标: 目标主机地址。
- QNX 目标测试目录:目标主机上将执行应用程序的目录。
- QNX 目标用户名:用于连接目标主机的用户名
- QNX 目标 PHOTON 环境变量值:对于 GUI 应用程序,您需要指定此值才能在 phindows 会话中显示应用程序 GUI。
此测试配置基于 Windows 中可用的 rcp(允许远程复制)和 rsh(允许远程 shell 执行)工具。需要将远程 QNX 系统配置为允许来自 rcp 和 rsh 的远程调用。也可以修改测试执行流程并使用不同工具代替 rcp 和 rsh。