本月测试基础设施动态:2025年3月期

本月测试基础设施动态:2025年3月期

💡 原文英文,约1700词,阅读约需7分钟。
📝

内容提要

2025年3月至4月,rust-lang/rust测试基础设施进行了重要更新,新增了compiletest支持的新诊断匹配方式、严格解析诊断类型和新指令,以提升测试的准确性和便捷性。

🎯

关键要点

  • 2025年3月至4月,rust-lang/rust测试基础设施进行了重要更新。

  • 新增compiletest支持的新诊断匹配方式,允许在后续行匹配诊断。

  • 引入严格解析诊断类型的功能,支持更精确的匹配。

  • compiletest现在支持使用stage 0 libtest,减少编译过程中的摩擦。

  • bootstrap的配置文件名已更改为bootstrap.toml,以避免与Cargo的混淆。

  • compiletest现在强制要求诊断类型的大小写一致性,混合大小写将被拒绝。

  • 引入新的指令//@ dont-require-annotations,允许特定诊断类型的非严格匹配。

  • compiletest不再接受{true, false}作为修订名称,以避免混淆。

  • 新增//@ needs-crate-type指令,允许根据目标平台支持的crate类型来控制测试执行。

  • compiletest将修剪环境变量名称中的空格,以确保一致性。

  • compiletest现在强制使用//@ edition指令,而不是//@ compile-flags: --edition=xxx。

  • 即将推出的更改包括将SUGGESTION错误注释视为病毒性,以及run-make测试将默认进行交叉编译。

延伸问答

rust测试基础设施在2025年3月有哪些重要更新?

rust测试基础设施在2025年3月进行了重要更新,包括新增compiletest支持的新诊断匹配方式和严格解析诊断类型等。

什么是compiletest的新诊断匹配方式?

compiletest现在支持在后续行匹配诊断,允许测试作者使用特定的注释语法来匹配后续行的诊断信息。

bootstrap的配置文件名有什么变化?

bootstrap的配置文件名已更改为bootstrap.toml,以避免与Cargo的config.toml混淆。

compiletest如何强制诊断类型的大小写一致性?

compiletest现在强制要求诊断类型的大小写一致性,混合大小写的注释将被拒绝。

新增的//@ needs-crate-type指令有什么作用?

//@ needs-crate-type指令允许根据目标平台支持的crate类型来控制测试执行,确保测试在适当的平台上运行。

compiletest将如何处理SUGGESTION错误注释?

compiletest即将将SUGGESTION错误注释视为病毒性,要求所有相同类型的HELP/NOTE诊断必须被逐一指定。

➡️

继续阅读