命令索引
所有命令由 scripts/axbuild 实现,通过 cargo xtask 统一入口调用。本文是完整的命令参考:列出每个 cargo xtask 顶层命令及其全部子命令、参数和用法示例,并提供到详细原理文档的链接。
1. 调用方式
默认调用方式为 cargo xtask <cmd>,经 tg-xtask 包转发到 axbuild::run():
cargo xtask <cmd> → cargo run -p tg-xtask -- <cmd> → axbuild::run()
.cargo/config.toml 中预配置了以下别名,使命令更简洁:
| 完整命令 | 别名 |
|---|---|
cargo xtask arceos ... | cargo arceos ... |
cargo xtask starry ... | cargo starry ... |
cargo xtask axvisor ... | cargo axvisor ... |
cargo xtask board ... | cargo board ... |
两种写法等价:
cargo xtask arceos qemu --package arceos-httpserver
cargo arceos qemu --package arceos-httpserver # 同上
2. 顶层命令
cargo xtask 的顶层命令(与 tg-xtask --help 输出一致),按职能分组:
| 命令 | 说明 | 详细文档 |
|---|---|---|
| 代码质量检查 | ||
cargo xtask test | workspace std 白名单测试 | Std 白名单测试 |
cargo xtask ktest | 在 QEMU 或板卡运行 harness=false 内核 axtest | 内核测试 |
cargo xtask clippy | workspace clippy(feature × target 矩阵) | Clippy 检查 |
cargo xtask sync-lint | 可疑 Relaxed 原子序检查 | Sync Lint |
cargo xtask lock-lint | 统一锁依赖与 runtime provider 边界检查 | Lock Lint |
| 辅助工具 | ||
cargo xtask board | 远程板卡管理(ls/connect/config) | 板卡管理 |
cargo xtask backtrace | host 端 backtrace 符号化 | Backtrace 符号化 |
cargo xtask image | TGOS rootfs/guest 镜像管理 | 镜像管理 |
cargo xtask ovmf | 获取经校验的 OVMF CODE/VARS 路径 | 本节 |
cargo xtask axloader | UEFI bootloader 构建与 HTTP smoke 测试 | Axloader |
cargo xtask agent-review-bench | 历史 PR 快照的离线 review benchmark | Review Benchmark |
| OS 子系统 | ||
cargo xtask arceos | ArceOS 构建/运行/测试 | ArceOS |
cargo xtask starry | StarryOS 构建/运行/测试/app/perf/kmod | StarryOS |
cargo xtask axvisor | Axvisor 构建/运行/测试(含 test uboot) | Axvisor |
通用的参数解析、Snapshot、Build Info、feature 校验和 QEMU to_bin 契约见 参数与配置;三套系统共享的 QEMU/板卡测试编排(用例发现、build wrapper、pipeline 类型、rootfs 缓存、grouped runner)见 测试基础设施;CI 自动化见 自动 CI 测试。
3. 质量检查
3.1 标准测试
对 scripts/test/std_crates.csv 白名单中的每个 crate 执行 cargo test -p <package>。无参数。
cargo xtask test
详见 Std 白名单测试。
3.2 内核测试
构建并运行确实依赖 QEMU/板卡的 harness = false Cargo 集成 axtest target;宿主可运行的测试应使用普通 #[test] 和 cargo xtask test。无参数时从 Cargo metadata 选择所有直接声明 workspace axtest dev-dependency 的 package;--workspace、可重复 -p/--package、--exclude