Improve runtest revision redundant cfg check#152925
Open
Hoverbear wants to merge 3 commits intorust-lang:mainfrom
Open
Improve runtest revision redundant cfg check#152925Hoverbear wants to merge 3 commits intorust-lang:mainfrom
Hoverbear wants to merge 3 commits intorust-lang:mainfrom
Conversation
Previously, `self.props.compile_flags.windows(2)` would return an empty iterator in the case where `self.props.compile_flags` was 1 or 0 length. This created incorrectness where tests like `tests/mir-opt/pre-codegen/copy_and_clone.rs` would pass when they should fail.
Collaborator
|
Some changes occurred in src/tools/compiletest cc @jieyouxu |
Collaborator
|
r? @clubby789 rustbot has assigned @clubby789. Use Why was this reviewer chosen?The reviewer was selected based on:
|
clubby789
approved these changes
Feb 20, 2026
bjorn3
reviewed
Feb 20, 2026
Contributor
Author
|
@clubby789 I'm not someone who can merge so someone else, like you, needs to do the honors! |
jieyouxu
approved these changes
Feb 21, 2026
Contributor
matthiaskrgr
added a commit
to matthiaskrgr/rust
that referenced
this pull request
Feb 21, 2026
…on-flag-check, r=clubby789,jieyouxu Improve runtest revision redundant cfg check While attempting to ingest rust-lang#148034 via ferrocene/ferrocene#2172 we noticed a test failure, as we add some `compile_flags` to tests. We saw a failure looking like this: ``` Testing stage1 with compiletest suite=mir-opt mode=mir-opt (x86_64-unknown-linux-gnu) running 2 tests 2026-02-20T20:21:28.846102Z ERROR compiletest::runtest: redundant cfg argument `copy` is already created by the revision [mir-opt] tests/mir-opt/pre-codegen/copy_and_clone.rs#COPY ... F . ``` While my Rust checkout passed: ``` Testing stage1 with compiletest suite=mir-opt mode=mir-opt (x86_64-unknown-linux-gnu) running 2 tests .. test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 381 filtered out; finished in 107.10ms ``` This caused me to add some debugging statements. Ferrocene: ``` 2026-02-20T21:05:39.808427Z ERROR compiletest::runtest: "copy": does ["--edition=2015", "--cfg=copy"] contain `"--cfg=copy"` or `["--cfg", "copy"]`? true 2026-02-20T21:05:39.808427Z ERROR compiletest::runtest: "clone": does ["--edition=2015"] contain `"--cfg=clone"` or `["--cfg", "clone"]`? false 2026-02-20T21:05:39.808435Z ERROR compiletest::runtest: redundant cfg argument `copy` is already created by the revision ``` Rust: ``` 2026-02-20T21:04:18.493158Z ERROR compiletest::runtest: "copy": does ["--cfg=copy"] contain `"--cfg=copy"` or `["--cfg", "copy"]`? false 2026-02-20T21:04:18.493158Z ERROR compiletest::runtest: "clone": does [] contain `"--cfg=clone"` or `["--cfg", "clone"]`? false ``` I noticed while reviewing the related functionality that there is a call to `.windows(2)` in the relevant check for redundant cfgs: https://github.com/rust-lang/rust/blob/0376d43d443cba463a0b6a6ec9140ea17d7b7130/src/tools/compiletest/src/runtest.rs#L507-L511 Noting: https://github.com/rust-lang/rust/blob/0376d43d443cba463a0b6a6ec9140ea17d7b7130/library/core/src/slice/mod.rs#L1064-L1066 Because of this, the revision check was getting an empty iterator when `self.props.compile_flags` was length 0 or 1. This fix adjusts the check to handle such cases. I went ahead and fixed the relevant test (4b3cd9b) that was impacted by this. I do not suspect there are others, at least within the scope that Ferrocene tests, as we have not previously seen this failure.
matthiaskrgr
added a commit
to matthiaskrgr/rust
that referenced
this pull request
Feb 21, 2026
…on-flag-check, r=clubby789,jieyouxu Improve runtest revision redundant cfg check While attempting to ingest rust-lang#148034 via ferrocene/ferrocene#2172 we noticed a test failure, as we add some `compile_flags` to tests. We saw a failure looking like this: ``` Testing stage1 with compiletest suite=mir-opt mode=mir-opt (x86_64-unknown-linux-gnu) running 2 tests 2026-02-20T20:21:28.846102Z ERROR compiletest::runtest: redundant cfg argument `copy` is already created by the revision [mir-opt] tests/mir-opt/pre-codegen/copy_and_clone.rs#COPY ... F . ``` While my Rust checkout passed: ``` Testing stage1 with compiletest suite=mir-opt mode=mir-opt (x86_64-unknown-linux-gnu) running 2 tests .. test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 381 filtered out; finished in 107.10ms ``` This caused me to add some debugging statements. Ferrocene: ``` 2026-02-20T21:05:39.808427Z ERROR compiletest::runtest: "copy": does ["--edition=2015", "--cfg=copy"] contain `"--cfg=copy"` or `["--cfg", "copy"]`? true 2026-02-20T21:05:39.808427Z ERROR compiletest::runtest: "clone": does ["--edition=2015"] contain `"--cfg=clone"` or `["--cfg", "clone"]`? false 2026-02-20T21:05:39.808435Z ERROR compiletest::runtest: redundant cfg argument `copy` is already created by the revision ``` Rust: ``` 2026-02-20T21:04:18.493158Z ERROR compiletest::runtest: "copy": does ["--cfg=copy"] contain `"--cfg=copy"` or `["--cfg", "copy"]`? false 2026-02-20T21:04:18.493158Z ERROR compiletest::runtest: "clone": does [] contain `"--cfg=clone"` or `["--cfg", "clone"]`? false ``` I noticed while reviewing the related functionality that there is a call to `.windows(2)` in the relevant check for redundant cfgs: https://github.com/rust-lang/rust/blob/0376d43d443cba463a0b6a6ec9140ea17d7b7130/src/tools/compiletest/src/runtest.rs#L507-L511 Noting: https://github.com/rust-lang/rust/blob/0376d43d443cba463a0b6a6ec9140ea17d7b7130/library/core/src/slice/mod.rs#L1064-L1066 Because of this, the revision check was getting an empty iterator when `self.props.compile_flags` was length 0 or 1. This fix adjusts the check to handle such cases. I went ahead and fixed the relevant test (4b3cd9b) that was impacted by this. I do not suspect there are others, at least within the scope that Ferrocene tests, as we have not previously seen this failure.
rust-bors bot
pushed a commit
that referenced
this pull request
Feb 21, 2026
Rollup of 6 pull requests Successful merges: - #152929 (Tighten the `!range` bounds on alignments in vtables) - #151603 (Stabilize `str_as_str`) - #152878 (Remove two more flaky assertions from `oneshot` tests) - #152915 (Error on attempt to construct scalable vector type) - #152925 (Improve runtest revision redundant cfg check) - #152928 (Update wasm-component-ld)
rust-bors bot
pushed a commit
that referenced
this pull request
Feb 21, 2026
Rollup of 6 pull requests Successful merges: - #152929 (Tighten the `!range` bounds on alignments in vtables) - #151603 (Stabilize `str_as_str`) - #152878 (Remove two more flaky assertions from `oneshot` tests) - #152915 (Error on attempt to construct scalable vector type) - #152925 (Improve runtest revision redundant cfg check) - #152928 (Update wasm-component-ld)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
While attempting to ingest #148034 via ferrocene/ferrocene#2172 we noticed a test failure, as we add some
compile_flagsto tests.We saw a failure looking like this:
While my Rust checkout passed:
This caused me to add some debugging statements.
Ferrocene:
Rust:
I noticed while reviewing the related functionality that there is a call to
.windows(2)in the relevant check for redundant cfgs:rust/src/tools/compiletest/src/runtest.rs
Lines 507 to 511 in 0376d43
Noting:
rust/library/core/src/slice/mod.rs
Lines 1064 to 1066 in 0376d43
Because of this, the revision check was getting an empty iterator when
self.props.compile_flagswas length 0 or 1.This fix adjusts the check to handle such cases.
I went ahead and fixed the relevant test (4b3cd9b) that was impacted by this. I do not suspect there are others, at least within the scope that Ferrocene tests, as we have not previously seen this failure.