内核测试(ktest)
cargo xtask ktest 为 StarryOS 和 Axvisor 中声明为 harness = false 的 [[test]] target 提供统一的 QEMU 和板卡执行路径。它不是 host 端的 cargo test:测试目标会作为内核镜像构建并在目标运行环境输出 axtest 标记。
1. 运行接口
qemu 和 board 共享 package、test target 与 Build Config 选择,但分别在虚拟机和远程板卡上完成最终验证。两种模式都只接收明确的 harness = false target,避免误把 host 测试当作内核测试执行。
1.1 QEMU 参数
QEMU 模式以 arch 或 target 选择运行时配置;未给出 --test 时,package 中必须只有一个符合约束的目标。--coverage 会启用 axtest 覆盖率捕获,不改变测试 target 的 feature 选择。
cargo xtask ktest qemu -p <PACKAGE> [--test <TARGET>] [--arch <ARCH> | -t <TRIPLE>]
[--config <BUILD_TOML>] [--qemu-config <QEMU_TOML>] [--coverage]
1.2 板卡参数
板卡模式必须同时给出 test target 与 board 名称,因为 build/run TOML 都由 board 名称派生。服务器地址和板型作为 RunBoardOptions 传给 ostool 的运行阶段,Build Config 保持由 --config 或 board 默认路径选择。
cargo xtask ktest board -p <PACKAGE> --test <TARGET> -b <BOARD>
[--config <BUILD_TOML>] [--board-config <BOARD_TOML>]
[--board-type <TYPE>] [--server <HOST>] [--port <PORT>]
--package 必须是 workspace package。运行时由 package 所在位置决定:axvisor 使用 Axvisor 流程,os/StarryOS/ 下的 package 使用 StarryOS 流程;其他 package 当前会被拒绝。