Std 白名单测试
cargo xtask test 是 axbuild 在 host 端执行的 Rust std 测试入口。它不是 cargo test --workspace:TGOSKits workspace 中混合了大量 #![no_std] 内核 crate,它们无法在标准 cargo test 环境下运行;盲目全量测试会因平台/特性不兼容大面积失败。本命令只对一份显式维护的白名单中的 crate 逐一执行 cargo test -p <package>,确保这些已知能在 host 环境通过测试的 crate(如纯算法库、工具库、无硬件依赖的组件)保持回归覆盖。
1. 白名单边界
TGOSKits workspace 目前包含近 150 个 crate,其中绝大多数是面向裸机/内核环境的 #![no_std] crate,依赖 axcpu、特定 target triple 和明确的内核 feature 组合才能编译。直接对全 workspace 跑 cargo test 会触发两类系统性失败:
no_stdcrate 无法在 std 环境编译:这些 crate 的#[cfg(test)]模块通常不存在,或依赖内核特性。- target/feature 不匹配:许多 crate 需要
--target aarch64-unknown-none-softfloat和特定 feature 组合才能编译,host 端cargo test无法满足。
白名单机制把 host 可测的 crate(算法库、工具库、序列化库等)显式列出,CI 对这一固定集合做全量回归,既保证覆盖又避免噪声。