测试

快速入门

如需构建 Zircon 并运行单元测试,请运行以下命令之一:

# Build and run x64.
fx set bringup.x64 --with-base //bundles/buildbot/bringup
fx build
fx qemu

# Build and run arm64.
fx set bringup.arm64 --with-base //bundles/buildbot/bringup
fx build
fx qemu

脚本运行完毕后,您应该会看到 Zircon shell。如需运行用户空间测试,请使用 Zircon shell 运行以下命令:

runtests --all

您可以使用 runtests --all -d 查看系统中可用的测试列表。您还可以使用 runtests -n <TEST_NAME> 运行一项特定测试。

如需运行内核内测试,请使用 Zircon shell 运行以下命令:

k ut all

Fuchsia 的使用入门页面详细介绍了如何使用 Zircon shell 以及如何自动构建所有受支持的架构。

用户空间测试

自动化测试框架、运行测试,从 /boot/test/system/test 目录中选择并运行所有可执行文件。如果您提供了 runtests -m widget_test 等命令行参数,则运行测试将仅运行所请求的单个测试(在本例中为 widget_test)。

内核模式测试

内核包含单元测试和诊断信息,可以使用 k 命令运行这些测试和诊断信息。k 命令的输出将仅在控制台中显示。根据您的配置,这可能是串行控制台或 debuglog 虚拟终端。

单元测试

内核的许多部分都有单元测试,可以自动报告成功/失败。这些单元测试是使用内核单元测试库提供的基元构建的。您可以通过搜索 UNITTEST_START_TESTCASE 静态找到这些查询。

您可以使用 k ut 从 shell 运行这些测试。k ut all 将运行所有测试,您也可以使用 k ut $TEST_NAME 运行特定测试。

诊断

内核的许多部分都提供诊断信息,其输出需要手动检查。其中一些诊断用于验证正确性(例如 timer_diag),而其他诊断仅用于对系统的某一部分(例如 timer_stress)进行压力测试。

如需运行诊断,只需将诊断名称传递给 k 命令即可。例如,如需运行内核的内置基准,请运行 k bench。如需以静态方式查找全套内核诊断,请搜索 STATIC_COMMAND。如需动态枚举它们,请运行 k help

诊断测试应通过串行控制台或通过对系统进行物理访问来运行。某些诊断可能具有破坏性,会使系统处于损坏状态。