本月测试基础设施更新:2024 年 10 月

2024 年 11 月 4 日 · Jieyou Xu 代表 Bootstrap 团队

本月测试基础设施更新:2024 年 10 月

本文快速总结了 rust-lang/rust 仓库1 测试基础设施在 2024 年 10 月2 的变化。文中也简要介绍了正在进行的工作。

一如既往,如果您在使用我们的测试基础设施时遇到 bug 或用户体验问题,请提交 issue。如果我们不知道 bug 和小问题,就无法修复它们!

感谢所有为我们的测试基础设施做出贡献的人!

亮点

compiletest 现在支持使用自定义 diff 工具

compiletest(和 bootstrap)现在支持使用自定义 diff 工具 (#131181).

A ui test failure showing stderr snapshot diff produced by a custom differ

这仅影响可视化 diff 的生成(例如,您可能喜欢不同的视觉风格)。`.stderr` 快照等不受影响。

如果您想使用您喜欢的 diff 工具生成可视化 diff,可以修改 config.tomlbuild.compiletest-diff-tool 选项

[build]
# What custom diff tool to use for displaying compiletest tests.
#compiletest-diff-tool = <none>

感谢 @dev-ardi 的实现!

minicore 测试辅助模块和 //@ add-core-stubs 指令

uiassemblycodegen 测试现在可以使用 //@ add-core-stubs 指令有条件地构建一个提供 core 存根的 minicore 测试辅助模块 (#130693)。这样,我们就可以在只需要针对交叉编译目标构建的交叉编译测试之间共享 core 存根,并避免在每个此类测试中重复创建和维护重复的 minicore 副本3

以前,每次想要添加不同的 ui/assembly/codegen 测试(例如检查交叉编译 ABI)时,都必须重新创建 minicore,这会显著增加贡献者的摩擦,并且更容易在 minicore 副本中引入错误。对于想要引入新 lang item 的编译器贡献者来说,这也特别烦人,因为他们发现自己必须更新多个此类 core 存根的副本。

请注意,目前共享的 tests/auxiliary/minicore.rs 测试辅助模块仍然非常基础。计划是先落地测试基础设施,然后再逐步向共享测试辅助模块添加更多 core 存根。

使用示例

// tests/ui/abi/my-abi-test.rs

//@ add-core-stubs
//@ compile-flags: --target x86_64-pc-windows-msvc
//@ needs-llvm-components: x86

#![crate_type = "lib"]
#![feature(no_core)]
#![no_std]
#![no_core]

extern crate minicore;
use minicore::*;

struct Meow;
impl Copy for Meow {} // `Copy` is provided by `minicore`!

有关原始动机的更多信息,请参阅上下文 issueMCP跟踪 issue。有关使用示例,请参阅rustc-dev-guide 章节。

PR 列表

改进

修复

清理

文档更新

正在进行的工作

注意:当然还有更多自发的努力,这里更多的是我所知的“计划内”工作。