Skip to content

Commit 2ab3525

Browse files
committed
Normalize cargo home in UI tests
1 parent 7db7489 commit 2ab3525

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

src/tools/compiletest/src/runtest.rs

+14
Original file line numberDiff line numberDiff line change
@@ -2332,6 +2332,20 @@ impl<'test> TestCx<'test> {
23322332
// eg. /home/user/rust/build
23332333
normalize_path(parent_build_dir, "$BUILD_DIR");
23342334

2335+
// e.g. /home/user/.cargo
2336+
if let Ok(cargo_home) = home::cargo_home() {
2337+
let mut from = cargo_home.display().to_string();
2338+
if json {
2339+
from = from.replace("\\", "\\\\");
2340+
}
2341+
// In CI, `$CARGO_HOME` is `/cargo`, but some paths in output contain `.../cargo...`
2342+
// Try to normalize only paths beginning with `$CARGO_HOME`
2343+
for prefix in [' ', '\n', '\'', '"'] {
2344+
normalized =
2345+
normalized.replace(&format!("{prefix}{from}"), &format!("{prefix}{from}"));
2346+
}
2347+
}
2348+
23352349
if json {
23362350
// escaped newlines in json strings should be readable
23372351
// in the stderr files. There's no point int being correct,

tests/ui/issues/issue-21763.rs

-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
// Regression test for HashMap only impl'ing Send/Sync if its contents do
22

3-
//@ normalize-stderr-test: "\S+[\\/]hashbrown\S+" -> "$$HASHBROWN_SRC_LOCATION"
4-
53
use std::collections::HashMap;
64
use std::rc::Rc;
75

tests/ui/issues/issue-21763.stderr

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
error[E0277]: `Rc<()>` cannot be sent between threads safely
2-
--> $DIR/issue-21763.rs:11:11
2+
--> $DIR/issue-21763.rs:9:11
33
|
44
LL | foo::<HashMap<Rc<()>, Rc<()>>>();
55
| ^^^^^^^^^^^^^^^^^^^^^^^ `Rc<()>` cannot be sent between threads safely
@@ -8,11 +8,11 @@ LL | foo::<HashMap<Rc<()>, Rc<()>>>();
88
= note: required because it appears within the type `(Rc<()>, Rc<()>)`
99
= note: required for `hashbrown::raw::RawTable<(Rc<()>, Rc<()>)>` to implement `Send`
1010
note: required because it appears within the type `hashbrown::map::HashMap<Rc<()>, Rc<()>, RandomState>`
11-
--> $HASHBROWN_SRC_LOCATION
11+
--> $CARGO_HOME/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.15.0/src/map.rs:185:12
1212
note: required because it appears within the type `HashMap<Rc<()>, Rc<()>>`
1313
--> $SRC_DIR/std/src/collections/hash/map.rs:LL:COL
1414
note: required by a bound in `foo`
15-
--> $DIR/issue-21763.rs:8:11
15+
--> $DIR/issue-21763.rs:6:11
1616
|
1717
LL | fn foo<T: Send>() {}
1818
| ^^^^ required by this bound in `foo`

0 commit comments

Comments
 (0)