测试框架
目录结构
tests/
├── basic-tester/ # C++ runner(CI)
├── aot-tester/ # AOT runner
├── managed/
│ ├── managed.sln
│ ├── Common/ # Assert、[UnitTest]、TestCaseBase
│ ├── SharedTests/ # 共享源,链入 CoreTests / AotTests
│ ├── CoreTests/ # CLR / IL / C# 语义
│ ├── CorlibTests/ # BCL icall / intrinsic
│ ├── AotTests/ # LeanAOT 专有
│ ├── ILTests/ # .il + wrapper
│ └── RunTests/ # C# 反射 runner(本地)
└── TESTING.md # 仓库内简短索引(指向文档站)
测试项目职责
| 项目 | 测什么 | 不应放什么 |
|---|---|---|
| CoreTests | 解释器、IL(C# 可写)、C# 特性、回归 | BCL icall 细节、AOT 链路专有 |
| CorlibTests | mscorlib / System:icall、intrinsic、P/Invoke | 纯 CLR 指令语义 |
| ILTests | C# 难构造的 IL(.il + ilasm) | 可用 C# 表达的用例 |
| AotTests | IL→C++ 后正确性 | 与 CoreTests 完全重复的指令测 |
| Common | 基础设施 | 测试用例本身 |