主要内容

在目标上执行 C/C++ 测试快速入门

Polyspace® Test™ 中执行测试的情况下,目标一词指的是具有特定处理器架构、交叉编译工具和用于与主机通信的通道的嵌入式系统。

您可以在自定义目标上运行添加到 Polyspace 平台工程中的图形化测试和 xUnit 测试。在目标上执行测试的步骤与在主机上执行测试的步骤类似。但是,您必须执行一次性设置以在 Polyspace 平台用户界面中注册目标。注册目标涉及编写自定义目标注册文件,该文件定义以下一项或多项:

  • 工具链:交叉编译器、编译工具等。

  • 板卡和处理器:板卡/处理器、数据类型支持、计时器功能等。

  • 通信细节:通道、协议等。

以下示例演示了使用 Polyspace 平台工程在目标上运行以图形化方式编写的测试的工作流。此示例定义了一个与主机具有相同架构并使用基于 GCC 的工具链的自定义目标。您可以根据自己的目标板的具体情况扩展此示例。

示例文件

要按照此示例进行操作,请将文件夹 polyspaceroot\polyspace\examples\doc_pstest\execute_on_target 中的内容复制到可写位置。其中,polyspaceroot 是 Polyspace 的安装文件夹,例如 C:\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,请执行以下操作:

  1. 打开 Polyspace 平台用户界面。有关如何打开该用户界面的详细信息,请参阅在 Polyspace 平台用户界面中编写 C/C++ 单元测试

  2. 在 Polyspace 平台工具条中,选择准备部分中的 Mange Boards button,然后选择管理板

  3. 管理板窗口中,选择注册目标

  4. 导航到文件 customPackage.m 并选择该文件。

如果目标注册成功完成,您将可以在可用板列表中看到目标 myTarget。如果文件包含语法错误或其他错误,目标注册步骤将导致错误。相关错误消息会指出目标注册文件存在的问题。

创建工程并添加测试

示例文件夹包含一个简单的源文件 factorial.c,该源文件包含一个函数 factorial()。配置 Polyspace 平台工程以测试此函数。

  1. 创建一个新工程。

  2. 工程窗格中右键点击代码节点,然后选择添加源文件。将文件 factorial.c 添加到您的工程中。

  3. 在工具条中,点击解析代码。函数 factorial() 显示为可测试函数。

  4. 右键点击 factorial() 函数,然后选择添加测试用例。在测试中指定以下信息。

    测试信息测试数据
    输入n = 1
    评估pst_call_out == 1

在配置中选择目标

在您的工程配置中选择之前注册的目标 myTarget

  1. 双击工程的配置节点。

  2. 编译选项卡上,从目标板名称(测试) 下拉列表中选择 myTarget

    您可以看到以下变化:

    • 处理器选项设置为处理器 myPILProcessor。您无法更改处理器。

    • 编译工具链(测试) 选项设置为 myToolchain。不过您可以选择不同的编译工具链。

有关这些选项的详细信息,请参阅:

在目标上运行测试

注册 myTarget 之后,您可以在该目标上运行之前创建的测试用例。

  1. 在 Polyspace 平台工具条中,选择编译工程

  2. 选择运行测试

Polyspace 会在目标上运行测试,并在结果窗格中显示测试结果。

在目标上计算代码覆盖率

注册 myTarget 之后,您可以在该目标上计算代码探查。

  1. 在工具条中找到探查部分,然后选择代码覆盖率

  2. 选择编译工程

    Polyspace Test 会对源文件进行插桩以计算代码覆盖率,然后编译插桩的源文件以及测试。

  3. 选择运行测试

Polyspace Test 会在目标上运行测试,并在结果窗格中显示测试以及探查结果。

注销目标

完成动态测试后,您可能想要注销 myTarget

  1. 在 Polyspace 平台工具条中,选择准备部分中的 Mange Boards button,然后选择管理板

  2. 管理板窗口中,选择注销目标

  3. 导航到文件 customPackageRemove.m 并选择该文件。

另请参阅

| | |

主题