# starry-test-harness **Repository Path**: openkylin/starry-test-harness ## Basic Information - **Project Name**: starry-test-harness - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2025-12-16 - **Last Updated**: 2026-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Starry Test Harness 基于 Rust 的 X-Kernel 统一测试框架。 | 套件 | 入口 | 说明 | |------|------|------| | `tests/ci/` | `make ci-test run` | 主线 CI,PR 合入必过 | | `tests/ci-test-iter/` | `make ci-test-iter run` | 迭代验证,功能稳定后升入 ci | | `tests/daily/` | `make daily-test run` | 每日回归:UnixBench + VSOCK 压力 + stress-ng | ```bash make ci-test run # 全量 CI CASES=vsock-echo make ci-test run # 单个用例 XKERNEL_REMOTE=/path/to/x-kernel make ci-test run # 指定本地内核 make daily-test run # 每日回归 ``` ## 目录结构 ``` tests/ ├── ci/suite.toml # CI 套件定义 ├── ci-test-iter/suite.toml # 迭代套件定义 ├── daily/suite.toml # Daily 套件定义 ├── cases/ # 共享 Rust guest 测试(每个 .rs = 一个用例) ├── host-companions/ # 宿主侧伴生程序 ├── test-utils/ # 共享工具库 ├── libc-test/ # 预编译 libc 测试 ├── tinyhttpd/ # 预编译 Tinyhttpd ├── unixbench/ # UnixBench 运行脚本 └── stress-ng/ # stress-ng 预编译二进制(按架构) ``` ## 添加测试用例 每个套件目录下只有 `suite.toml`,所有资产在 `tests/` 下共享。 ### Rust 测试(最常用) 1. 新建 `tests/cases/tests/my_test.rs`,写 `#[test]` 函数 2. 在 `suite.toml` 注册: ```toml [[cases]] name = "my-test" runner = "guest-test" binary = "my_test" ``` ### 预编译二进制注入 将编译产物按 `tests/xxx/${ARCH}/binary` 放好,用 `inject` + `guest_command`: ```toml [[cases]] name = "my-prebuilt" runner = "guest-test" guest_command = "chmod +x /usr/tests/bin && /usr/tests/bin" [[cases.inject]] src = "tests/xxx/${ARCH}/bin" dest = "/usr/tests/bin" ``` `src` 指向目录时自动递归注入。 ### Host-Guest 通信 加 `host_companion` 字段,伴生程序放 `tests/host-companions/`: ```toml [[cases]] name = "my-net-test" runner = "guest-test" binary = "my_guest" host_companion = "my-companion" companion_delay_secs = 3 companion_timeout_secs = 30 ``` ## 环境变量 | 变量 | 说明 | |------|------| | `XKERNEL_REMOTE` | X-Kernel 本地路径 | | `ARCH` | 目标架构(默认 `aarch64`) | | `CASES` | 指定用例名(逗号分隔) | | `CI` | CI 环境标记 |