测试

快速入门

如需构建 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),则 runtests 将仅运行 请求了一项测试 - 在本例中为 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

诊断测试应该通过串行控制台运行, 访问系统的权限。某些诊断结果可能具有破坏性,会导致系统离开 它们都处于损坏状态