SuperAPI AI 工具集

jit-regression-test

测试与质量

查看项目

更新于 10-15 21:12

技能介绍

用途:从 GitHub issue 中提取一个独立的 JIT 回归测试用例,并按规范结构保存到 src/tests/JIT/Regression/JitBlue/ 下。适用于创建 JIT 回归测试。

不适用情形:issue 无可复现代码且无法自行编写最小复现;issue 与 JitBlue/ 下已有测试重复;缺陷位于库或运行时而非 JIT 编译器本身。以上情况不要创建测试。

主要步骤: 一、从 issue 提取信息:issue 编号对应文件夹与文件名(如 #99391 → Runtime_99391)、复现代码(未提供则自行编写最小复现)、复现所需环境变量(如 DOTNET_)、预期行为。 二、创建目录:src/tests/JIT/Regression/JitBlue/Runtime_<issue_number>/。 三、创建测试文件 Runtime_<issue_number>.cs,约定包括:包含标准 .NET Foundation 许可证头;类名与文件名一致;测试方法使用 [Fact],命名为 TestEntryPoint();尽量精简复现代码;需要阻止内联时使用 [MethodImpl(MethodImplOptions.NoInlining)];用 Assert.Equal、Assert.True 等校验。 四、csproj 处理:仅当需要环境变量(如 DOTNET_JitStressModeNames)或特殊编译设置时,才创建同名 Runtime_<issue_number>.csproj;否则将测试文件登记到已有的 src/tests/JIT/Regression/Regression_.csproj(Regression_ro_2.csproj 是不错的默认选择),无需新建。自定义 csproj 需放在源文件旁,可包含 CLRTestEnvironmentVariable 等配置。

提示:简单测试无需 csproj;不确定当前约定时可参考 src/tests/JIT/Regression/JitBlue/Runtime_* 下近期测试。