跳到主要内容

测试套件总览

test-suit/ 是所有 OS 测试用例的统一入口,按操作系统划分为独立目录。每个目录由对应的 cargo xtask <os> 子命令负责发现、构建和运行测试。

1. 总体定位

docs/docs/design/test 关注测试套件的组织方式、实现入口、运行链路和基础设施。重点是“测试如何被组织和执行”,而不是各子系统所有构建命令的完整使用手册。

2. 测试架构总图

当前仓库的主流测试链路统一收敛到 scripts/axbuild 中的测试入口,再通过 AppContextostool 执行底层构建、QEMU、U-Boot 或板级运行。

本目录中的测试文档主要描述以下实现要素:

  • 测试入口在什么代码路径
  • 用例是自动发现还是硬编码注册
  • 运行前会准备哪些资产
  • 成功/失败如何判定
  • 当前哪些能力是正式支持,哪些仍是占位或限制项

3. 目录结构总览

test-suit/ 下的 OS 级测试外,仓库还维护两类主机端(host)自动化验证:

验证类型入口命令配置来源
标准库测试cargo xtask testscripts/test/std_crates.csv(包白名单)
Clippy 检查cargo xtask clippyscripts/test/clippy_crates.csv(包清单)

标准库测试对白名单中的每个 crate 执行 cargo test -p <package>,验证其在当前工具链下能否通过编译和单元测试。这两类验证均在 CI 的 container 环境中运行,与 OS 级 QEMU 测试共享同一基础镜像。

4. 实现入口

当前测试体系的主要实现入口如下:

范围主要实现入口说明
StarryOS 测试scripts/axbuild/src/starry/mod.rsscripts/axbuild/src/starry/test_suit.rsscripts/axbuild/src/starry/rootfs.rs负责 case 发现、rootfs 准备、case 资产注入和运行汇总
Axvisor 测试scripts/axbuild/src/axvisor/mod.rsscripts/axbuild/src/axvisor/qemu_test.rs负责 QEMU/U-Boot/板测分发、guest 资产准备和硬编码测试组展开
ArceOS 测试scripts/axbuild/src/arceos/mod.rsscripts/axbuild/src/test_qemu.rs负责 Rust/C 测试分流、包白名单、C 测试目录白名单和运行汇总
主机端测试scripts/axbuild/src/test_std.rscargo xtask clippy 对应入口负责白名单 std 测试和静态检查

5. 覆盖范围

本目录覆盖主流测试套件的实现与组织方式,重点包括:

  • StarryOS 的 test-suit 驱动 QEMU / board 测试
  • Axvisor 的 QEMU / U-Boot / board 测试入口
  • ArceOS 的 Rust / C QEMU 测试入口
  • 测试基础设施、容器环境和命名规则

未在本目录中完整展开的内容包括:

  • ostool 内部的 QEMU / board / U-Boot 执行细节
  • 各 OS 普通 build/qemu/board/uboot 命令的完整构建系统细节
  • 非主流或仍在演进中的占位测试能力

6. 文档结构

当前测试文档按系统边界和共享主题拆分如下:

主题文档内容范围
测试体系总览本文测试架构、目录结构、实现入口、文档结构
CI 自动测试CI 自动测试实现ci.yml 的触发条件、矩阵展开、host/container 分流、跳过逻辑与镜像发布
命名规则与共享配置命名规则与共享配置共享配置文件类型、目录/文件命名规则、架构命名、发现路径约定
测试基础设施与环境测试基础设施与环境Container 镜像设计、CI 集成方式、镜像发布流程与触发条件
StarryOS 测试套件StarryOS 测试套件设计分组、现有用例清单、C/Rust/无源码用例、QEMU 与板级测试流程、新增用例指南
Axvisor 测试套件Axvisor 测试套件设计QEMU、U-Boot、板级测试的硬编码测试组和新增指南
ArceOS 测试套件ArceOS 测试套件设计C/Rust 测试结构、发现机制、构建运行流程、构建配置与新增指南

7. 相关文档