Perform deeper compiletest path normalization for $TEST_BUILD_DIR to account for compare-mode/debugger cases, and normalize long type file filename hashes by jieyouxu · Pull Request #136865 · rust-lang/rust (original) (raw)

jieyouxu

Fixes #136510.

Summary

cf. #136328 (comment).

Review advice

Commit 2 is created via first finding tests that try to perform long type file hash normalizations on an ad hoc, per-test basis:

rg --no-ignore -l --no-ignore -F -e "long-type" tests/ui/**/*.rs   

Tests with ad hoc long-type hash normalizations

tests/ui/type_length_limit.rs
tests/ui/traits/on_unimplemented_long_types.rs
tests/ui/regions/issue-102374.rs
tests/ui/recursion/recursion.rs
tests/ui/recursion/issue-83150.rs
tests/ui/recursion/issue-23122-2.rs
tests/ui/methods/inherent-bound-in-probe.rs
tests/ui/issues/issue-67552.rs
tests/ui/issues/issue-37311-type-length-limit/issue-37311.rs
tests/ui/issues/issue-20413.rs
tests/ui/issues/issue-8727.rs
tests/ui/infinite/infinite-instantiation.rs
tests/ui/infinite/infinite-instantiation-struct-tail-ice-114484.rs
tests/ui/higher-ranked/trait-bounds/hrtb-doesnt-borrow-self-1.rs
tests/ui/higher-ranked/trait-bounds/hrtb-doesnt-borrow-self-2.rs
tests/ui/higher-ranked/trait-bounds/hang-on-deeply-nested-dyn.rs
tests/ui/error-codes/E0275.rs
tests/ui/diagnostic-width/secondary-label-with-long-type.rs
tests/ui/diagnostic-width/long-e0277.rs
tests/ui/diagnostic-width/non-copy-type-moved.rs
tests/ui/diagnostic-width/long-E0308.rs
tests/ui/diagnostic-width/E0271.rs
tests/ui/diagnostic-width/binop.rs

These ad hoc normalizations were removed, and they are reblessed.

r? @lqd

@rustbot rustbot added A-compiletest

Area: The compiletest test runner

A-testsuite

Area: The testsuite used to check the correctness of rustc

S-waiting-on-review

Status: Awaiting review from the assignee but also interested parties.

T-bootstrap

Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)

T-compiler

Relevant to the compiler team, which will review and decide on the PR/issue.

labels

Feb 11, 2025

@jieyouxu

@rustbot rustbot added S-blocked

Status: Blocked on something else such as an RFC or other implementation work.

and removed S-waiting-on-review

Status: Awaiting review from the assignee but also interested parties.

labels

Feb 11, 2025

jieyouxu

//~ ERROR overflow evaluating the requirement `Map<&mut std::ops::Range, {closure@$DIR/issue-83150.rs:13:24: 13:27}>: Iterator`
//~ ERROR overflow evaluating the requirement `Map<&mut std::ops::Range, {closure@$DIR/issue-83150.rs:12:24: 12:27}>: Iterator`

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Closure LINE:COL numbers aren't normalized, not for this PR

jieyouxu

Comment on lines -7 to +9

= note: candidate #1: $TEST_BUILD_DIR/crate-loading/crateresolve1/auxiliary/libcrateresolve1-1.somelib
= note: candidate #2: $TEST_BUILD_DIR/crate-loading/crateresolve1/auxiliary/libcrateresolve1-2.somelib
= note: candidate #3: $TEST_BUILD_DIR/crate-loading/crateresolve1/auxiliary/libcrateresolve1-3.somelib
= note: candidate #1: $TEST_BUILD_DIR/auxiliary/libcrateresolve1-1.somelib
= note: candidate #2: $TEST_BUILD_DIR/auxiliary/libcrateresolve1-2.somelib
= note: candidate #3: $TEST_BUILD_DIR/auxiliary/libcrateresolve1-3.somelib

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're now normalizing deeper, so this is to be expected, otherwise you'd have crateresolve1.polonius for instance

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah that seems fine to me as well, it should be quite rare that we’re testing and looking for an actual path in diagnostics rather than the semantic contents of the output.

@rust-log-analyzer

This comment has been minimized.

@jieyouxu

Of course, the ui-fulldeps test suite exists.

@bors

jieyouxu

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This merge-conflicted against master, not sure what changed here 🤔 Maybe just line number differences?

@bors

@jieyouxu

Prerequisite PRs have merged. Rebased against latest master. This PR is now ready for review.

@rustbot ready

@rustbot rustbot added S-waiting-on-review

Status: Awaiting review from the assignee but also interested parties.

and removed S-blocked

Status: Blocked on something else such as an RFC or other implementation work.

labels

Feb 28, 2025

@jieyouxu

Oh a few new tests have the normalize regex. @rustbot author

@rustbot rustbot added S-waiting-on-author

Status: This is awaiting some action (such as code changes or more information) from the author.

and removed S-waiting-on-review

Status: Awaiting review from the assignee but also interested parties.

labels

Feb 28, 2025

@jieyouxu

Removed a couple more manually specified normalizations from diagnostic-width tests.

@rustbot ready

@rustbot rustbot removed the S-waiting-on-author

Status: This is awaiting some action (such as code changes or more information) from the author.

label

Feb 28, 2025

@bors bors added the S-waiting-on-author

Status: This is awaiting some action (such as code changes or more information) from the author.

label

Mar 3, 2025

@jieyouxu

Hm, looks like the hash didn't get normalized out somehow.

long-E0609.long-type-7406580109788020232.txt

@jieyouxu

This is to make test stderr insensitive to compare-mode / debugger that changes the test build dir output name.

Previously, this normalized paths up to test-suite-specific build root, e.g. /path/to/build/test/ui/. Now, this normalizes up to test-specific build root, e.g. /path/to/build/test/ui/subdir/$name.$revision.$mode.$debugger/.

@jieyouxu

@jieyouxu

@jieyouxu

@jieyouxu

It turns out platform-specific differences are indeed, platform-specific differences. I reordered the long-type-file hash normalization after normalizing away platform-specific differences and now they pass locally on msvc.

@bors r=@lqd rollup

@bors

📌 Commit 4f2a3dc has been approved by lqd

It is now in the queue for this repository.

@bors

🌲 The tree is currently closed for pull requests below priority 102. This pull request will be tested once the tree is reopened.

@bors bors added S-waiting-on-bors

Status: Waiting on bors to run and complete tests. Bors will change the label on completion.

and removed S-waiting-on-author

Status: This is awaiting some action (such as code changes or more information) from the author.

labels

Mar 3, 2025

jhpratt added a commit to jhpratt/rust that referenced this pull request

Mar 4, 2025

@jhpratt

…de, r=lqd

Perform deeper compiletest path normalization for $TEST_BUILD_DIR to account for compare-mode/debugger cases, and normalize long type file filename hashes

Fixes rust-lang#136510.

Summary

cf. rust-lang#136328 (comment).

Review advice

Commit 2 is created via first finding tests that try to perform long type file hash normalizations on an ad hoc, per-test basis:

rg --no-ignore -l --no-ignore -F -e "long-type" tests/ui/**/*.rs
Tests with ad hoc long-type hash normalizations
tests/ui/type_length_limit.rs
tests/ui/traits/on_unimplemented_long_types.rs
tests/ui/regions/issue-102374.rs
tests/ui/recursion/recursion.rs
tests/ui/recursion/issue-83150.rs
tests/ui/recursion/issue-23122-2.rs
tests/ui/methods/inherent-bound-in-probe.rs
tests/ui/issues/issue-67552.rs
tests/ui/issues/issue-37311-type-length-limit/issue-37311.rs
tests/ui/issues/issue-20413.rs
tests/ui/issues/issue-8727.rs
tests/ui/infinite/infinite-instantiation.rs
tests/ui/infinite/infinite-instantiation-struct-tail-ice-114484.rs
tests/ui/higher-ranked/trait-bounds/hrtb-doesnt-borrow-self-1.rs
tests/ui/higher-ranked/trait-bounds/hrtb-doesnt-borrow-self-2.rs
tests/ui/higher-ranked/trait-bounds/hang-on-deeply-nested-dyn.rs
tests/ui/error-codes/E0275.rs
tests/ui/diagnostic-width/secondary-label-with-long-type.rs
tests/ui/diagnostic-width/long-e0277.rs
tests/ui/diagnostic-width/non-copy-type-moved.rs
tests/ui/diagnostic-width/long-E0308.rs
tests/ui/diagnostic-width/E0271.rs
tests/ui/diagnostic-width/binop.rs

These ad hoc normalizations were removed, and they are reblessed.

r? @lqd

bors added a commit to rust-lang-ci/rust that referenced this pull request

Mar 4, 2025

@bors

Rollup of 13 pull requests

Successful merges:

Failed merges:

r? @ghost @rustbot modify labels: rollup

jieyouxu added a commit to jieyouxu/rust that referenced this pull request

Mar 4, 2025

@jieyouxu

…de, r=lqd

Perform deeper compiletest path normalization for $TEST_BUILD_DIR to account for compare-mode/debugger cases, and normalize long type file filename hashes

Fixes rust-lang#136510.

Summary

cf. rust-lang#136328 (comment).

Review advice

Commit 2 is created via first finding tests that try to perform long type file hash normalizations on an ad hoc, per-test basis:

rg --no-ignore -l --no-ignore -F -e "long-type" tests/ui/**/*.rs
Tests with ad hoc long-type hash normalizations
tests/ui/type_length_limit.rs
tests/ui/traits/on_unimplemented_long_types.rs
tests/ui/regions/issue-102374.rs
tests/ui/recursion/recursion.rs
tests/ui/recursion/issue-83150.rs
tests/ui/recursion/issue-23122-2.rs
tests/ui/methods/inherent-bound-in-probe.rs
tests/ui/issues/issue-67552.rs
tests/ui/issues/issue-37311-type-length-limit/issue-37311.rs
tests/ui/issues/issue-20413.rs
tests/ui/issues/issue-8727.rs
tests/ui/infinite/infinite-instantiation.rs
tests/ui/infinite/infinite-instantiation-struct-tail-ice-114484.rs
tests/ui/higher-ranked/trait-bounds/hrtb-doesnt-borrow-self-1.rs
tests/ui/higher-ranked/trait-bounds/hrtb-doesnt-borrow-self-2.rs
tests/ui/higher-ranked/trait-bounds/hang-on-deeply-nested-dyn.rs
tests/ui/error-codes/E0275.rs
tests/ui/diagnostic-width/secondary-label-with-long-type.rs
tests/ui/diagnostic-width/long-e0277.rs
tests/ui/diagnostic-width/non-copy-type-moved.rs
tests/ui/diagnostic-width/long-E0308.rs
tests/ui/diagnostic-width/E0271.rs
tests/ui/diagnostic-width/binop.rs

These ad hoc normalizations were removed, and they are reblessed.

r? @lqd

bors added a commit to rust-lang-ci/rust that referenced this pull request

Mar 4, 2025

@bors

Rollup of 10 pull requests

Successful merges:

r? @ghost @rustbot modify labels: rollup

workingjubilee added a commit to workingjubilee/rustc that referenced this pull request

Mar 4, 2025

@workingjubilee

…de, r=lqd

Perform deeper compiletest path normalization for $TEST_BUILD_DIR to account for compare-mode/debugger cases, and normalize long type file filename hashes

Fixes rust-lang#136510.

Summary

cf. rust-lang#136328 (comment).

Review advice

Commit 2 is created via first finding tests that try to perform long type file hash normalizations on an ad hoc, per-test basis:

rg --no-ignore -l --no-ignore -F -e "long-type" tests/ui/**/*.rs
Tests with ad hoc long-type hash normalizations
tests/ui/type_length_limit.rs
tests/ui/traits/on_unimplemented_long_types.rs
tests/ui/regions/issue-102374.rs
tests/ui/recursion/recursion.rs
tests/ui/recursion/issue-83150.rs
tests/ui/recursion/issue-23122-2.rs
tests/ui/methods/inherent-bound-in-probe.rs
tests/ui/issues/issue-67552.rs
tests/ui/issues/issue-37311-type-length-limit/issue-37311.rs
tests/ui/issues/issue-20413.rs
tests/ui/issues/issue-8727.rs
tests/ui/infinite/infinite-instantiation.rs
tests/ui/infinite/infinite-instantiation-struct-tail-ice-114484.rs
tests/ui/higher-ranked/trait-bounds/hrtb-doesnt-borrow-self-1.rs
tests/ui/higher-ranked/trait-bounds/hrtb-doesnt-borrow-self-2.rs
tests/ui/higher-ranked/trait-bounds/hang-on-deeply-nested-dyn.rs
tests/ui/error-codes/E0275.rs
tests/ui/diagnostic-width/secondary-label-with-long-type.rs
tests/ui/diagnostic-width/long-e0277.rs
tests/ui/diagnostic-width/non-copy-type-moved.rs
tests/ui/diagnostic-width/long-E0308.rs
tests/ui/diagnostic-width/E0271.rs
tests/ui/diagnostic-width/binop.rs

These ad hoc normalizations were removed, and they are reblessed.

r? @lqd

bors added a commit to rust-lang-ci/rust that referenced this pull request

Mar 5, 2025

@bors

workingjubilee added a commit to workingjubilee/rustc that referenced this pull request

Mar 5, 2025

@workingjubilee

…de, r=lqd

Perform deeper compiletest path normalization for $TEST_BUILD_DIR to account for compare-mode/debugger cases, and normalize long type file filename hashes

Fixes rust-lang#136510.

Summary

cf. rust-lang#136328 (comment).

Review advice

Commit 2 is created via first finding tests that try to perform long type file hash normalizations on an ad hoc, per-test basis:

rg --no-ignore -l --no-ignore -F -e "long-type" tests/ui/**/*.rs
Tests with ad hoc long-type hash normalizations
tests/ui/type_length_limit.rs
tests/ui/traits/on_unimplemented_long_types.rs
tests/ui/regions/issue-102374.rs
tests/ui/recursion/recursion.rs
tests/ui/recursion/issue-83150.rs
tests/ui/recursion/issue-23122-2.rs
tests/ui/methods/inherent-bound-in-probe.rs
tests/ui/issues/issue-67552.rs
tests/ui/issues/issue-37311-type-length-limit/issue-37311.rs
tests/ui/issues/issue-20413.rs
tests/ui/issues/issue-8727.rs
tests/ui/infinite/infinite-instantiation.rs
tests/ui/infinite/infinite-instantiation-struct-tail-ice-114484.rs
tests/ui/higher-ranked/trait-bounds/hrtb-doesnt-borrow-self-1.rs
tests/ui/higher-ranked/trait-bounds/hrtb-doesnt-borrow-self-2.rs
tests/ui/higher-ranked/trait-bounds/hang-on-deeply-nested-dyn.rs
tests/ui/error-codes/E0275.rs
tests/ui/diagnostic-width/secondary-label-with-long-type.rs
tests/ui/diagnostic-width/long-e0277.rs
tests/ui/diagnostic-width/non-copy-type-moved.rs
tests/ui/diagnostic-width/long-E0308.rs
tests/ui/diagnostic-width/E0271.rs
tests/ui/diagnostic-width/binop.rs

These ad hoc normalizations were removed, and they are reblessed.

r? @lqd

bors added a commit to rust-lang-ci/rust that referenced this pull request

Mar 5, 2025

@bors

…kingjubilee

Rollup of 20 pull requests

Successful merges:

r? @ghost @rustbot modify labels: rollup

bors added a commit to rust-lang-ci/rust that referenced this pull request

Mar 5, 2025

@bors

rust-timer added a commit to rust-lang-ci/rust that referenced this pull request

Mar 5, 2025

@rust-timer

Rollup merge of rust-lang#136865 - jieyouxu:long-type-path-compare-mode, r=lqd

Perform deeper compiletest path normalization for $TEST_BUILD_DIR to account for compare-mode/debugger cases, and normalize long type file filename hashes

Fixes rust-lang#136510.

Summary

cf. rust-lang#136328 (comment).

Review advice

Commit 2 is created via first finding tests that try to perform long type file hash normalizations on an ad hoc, per-test basis:

rg --no-ignore -l --no-ignore -F -e "long-type" tests/ui/**/*.rs
Tests with ad hoc long-type hash normalizations
tests/ui/type_length_limit.rs
tests/ui/traits/on_unimplemented_long_types.rs
tests/ui/regions/issue-102374.rs
tests/ui/recursion/recursion.rs
tests/ui/recursion/issue-83150.rs
tests/ui/recursion/issue-23122-2.rs
tests/ui/methods/inherent-bound-in-probe.rs
tests/ui/issues/issue-67552.rs
tests/ui/issues/issue-37311-type-length-limit/issue-37311.rs
tests/ui/issues/issue-20413.rs
tests/ui/issues/issue-8727.rs
tests/ui/infinite/infinite-instantiation.rs
tests/ui/infinite/infinite-instantiation-struct-tail-ice-114484.rs
tests/ui/higher-ranked/trait-bounds/hrtb-doesnt-borrow-self-1.rs
tests/ui/higher-ranked/trait-bounds/hrtb-doesnt-borrow-self-2.rs
tests/ui/higher-ranked/trait-bounds/hang-on-deeply-nested-dyn.rs
tests/ui/error-codes/E0275.rs
tests/ui/diagnostic-width/secondary-label-with-long-type.rs
tests/ui/diagnostic-width/long-e0277.rs
tests/ui/diagnostic-width/non-copy-type-moved.rs
tests/ui/diagnostic-width/long-E0308.rs
tests/ui/diagnostic-width/E0271.rs
tests/ui/diagnostic-width/binop.rs

These ad hoc normalizations were removed, and they are reblessed.

r? @lqd

@jieyouxu jieyouxu deleted the long-type-path-compare-mode branch

March 5, 2025 18:39