在目标上执行 C/C++ 测试快速入门
在 Polyspace® Test™ 中执行测试的情况下,目标一词指的是具有特定处理器架构、交叉编译工具和用于与主机通信的通道的嵌入式系统。
您可以在自定义目标上运行添加到 Polyspace 平台工程中的图形化测试和 xUnit 测试。在目标上执行测试的步骤与在主机上执行测试的步骤类似。但是,您必须执行一次性设置以在 Polyspace 平台用户界面中注册目标。注册目标涉及编写自定义目标注册文件,该文件定义以下一项或多项:
工具链:交叉编译器、编译工具等。
板卡和处理器:板卡/处理器、数据类型支持、计时器功能等。
通信细节:通道、协议等。
以下示例演示了使用 Polyspace 平台工程在目标上运行以图形化方式编写的测试的工作流。此示例定义了一个与主机具有相同架构并使用基于 GCC 的工具链的自定义目标。您可以根据自己的目标板的具体情况扩展此示例。
示例文件
要按照此示例进行操作,请将文件夹 中的内容复制到可写位置。其中,polyspaceroot\polyspace\examples\doc_pstest\execute_on_target 是 Polyspace 的安装文件夹,例如 polyspacerootC:\Program Files\Polyspace\R2026a。
注册目标
此示例通过复制主机的处理器特性定义了一个虚假目标板 myTarget。该目标板使用目标框架 MATLAB® API 中的类定义。虽然目标注册文件使用 MATLAB 代码,但是您可以在任何文本编辑器中查看或修改该文件。您无需安装 MATLAB 即可修改该文件。
示例文件夹包含以下用于注册和注销目标的文件:
customPackage.m:此文件使用 MATLAB 函数target.create(Embedded Coder) 定义自定义目标myTarget,并使用函数target.add(Embedded Coder) 将其添加到已注册目标的存储库中。customPackageRemove.m:此文件使用函数target.remove(Embedded Coder) 从已注册目标的存储库中删除目标myTarget。
有关目标注册文件结构的详细信息,请参阅Create Target Registration Packages for C/C++ Test Execution on Targets。
要注册自定义目标 myTarget,请执行以下操作:
打开 Polyspace 平台用户界面。有关如何打开该用户界面的详细信息,请参阅在 Polyspace 平台用户界面中编写 C/C++ 单元测试。
在 Polyspace 平台工具条中,选择准备部分中的
,然后选择管理板。 在管理板窗口中,选择注册目标。
导航到文件
customPackage.m并选择该文件。
如果目标注册成功完成,您将可以在可用板列表中看到目标 myTarget。如果文件包含语法错误或其他错误,目标注册步骤将导致错误。相关错误消息会指出目标注册文件存在的问题。
创建工程并添加测试
示例文件夹包含一个简单的源文件 factorial.c,该源文件包含一个函数 factorial()。配置 Polyspace 平台工程以测试此函数。
创建一个新工程。
在工程窗格中右键点击代码节点,然后选择添加源文件。将文件
factorial.c添加到您的工程中。在工具条中,点击解析代码。函数
factorial()显示为可测试函数。右键点击
factorial()函数,然后选择添加测试用例。在测试中指定以下信息。测试信息 测试数据 输入 n = 1评估 pst_call_out == 1
在配置中选择目标
在您的工程配置中选择之前注册的目标 myTarget。
双击工程的配置节点。
在编译选项卡上,从目标板名称(测试) 下拉列表中选择 myTarget。
您可以看到以下变化:
处理器选项设置为处理器 myPILProcessor。您无法更改处理器。
编译工具链(测试) 选项设置为 myToolchain。不过您可以选择不同的编译工具链。
有关这些选项的详细信息,请参阅:
在目标上运行测试
注册 myTarget 之后,您可以在该目标上运行之前创建的测试用例。
在 Polyspace 平台工具条中,选择编译工程。
选择运行测试。
Polyspace 会在目标上运行测试,并在结果窗格中显示测试结果。
在目标上计算代码覆盖率
注册 myTarget 之后,您可以在该目标上计算代码探查。
在工具条中找到探查部分,然后选择代码覆盖率。
选择编译工程。
Polyspace Test 会对源文件进行插桩以计算代码覆盖率,然后编译插桩的源文件以及测试。
选择运行测试。
Polyspace Test 会在目标上运行测试,并在结果窗格中显示测试以及探查结果。
注销目标
完成动态测试后,您可能想要注销 myTarget:
在 Polyspace 平台工具条中,选择准备部分中的
,然后选择管理板。 在管理板窗口中,选择注销目标。
导航到文件
customPackageRemove.m并选择该文件。
另请参阅
polyspace-test -manage-target-package | polyspace-test -check-target-package | polyspace-test -build | polyspace-test -run