Test for relative paths in crate path diagnostics
This commit is contained in:
parent
2024e26881
commit
52f35d0131
5 changed files with 61 additions and 0 deletions
|
@ -0,0 +1,6 @@
|
|||
#![crate_name = "crateresolve1"]
|
||||
#![crate_type = "lib"]
|
||||
|
||||
pub fn f() -> isize {
|
||||
10
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
#![crate_name = "crateresolve1"]
|
||||
#![crate_type = "lib"]
|
||||
|
||||
pub fn f() -> isize {
|
||||
20
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
extern crate crateresolve1;
|
||||
|
||||
fn main() {}
|
|
@ -0,0 +1,12 @@
|
|||
error[E0464]: multiple candidates for `rlib` dependency `crateresolve1` found
|
||||
--> multiple-candidates.rs:1:1
|
||||
|
|
||||
LL | extern crate crateresolve1;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: candidate #1: ./mylibs/libcrateresolve1-1.rlib
|
||||
= note: candidate #2: ./mylibs/libcrateresolve1-2.rlib
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0464`.
|
34
tests/run-make/crate-loading-multiple-candidates/rmake.rs
Normal file
34
tests/run-make/crate-loading-multiple-candidates/rmake.rs
Normal file
|
@ -0,0 +1,34 @@
|
|||
//@ needs-symlink
|
||||
//@ ignore-cross-compile
|
||||
|
||||
// Tests that the multiple candidate dependencies diagnostic prints relative
|
||||
// paths if a relative library path was passed in.
|
||||
|
||||
use run_make_support::{bare_rustc, diff, rfs, rustc};
|
||||
|
||||
fn main() {
|
||||
// Check that relative paths are preserved in the diagnostic
|
||||
rfs::create_dir("mylibs");
|
||||
rustc().input("crateresolve1-1.rs").out_dir("mylibs").extra_filename("-1").run();
|
||||
rustc().input("crateresolve1-2.rs").out_dir("mylibs").extra_filename("-2").run();
|
||||
check("./mylibs");
|
||||
|
||||
// Check that symlinks aren't followed when printing the diagnostic
|
||||
rfs::rename("mylibs", "original");
|
||||
rfs::symlink_dir("original", "mylibs");
|
||||
check("./mylibs");
|
||||
}
|
||||
|
||||
fn check(library_path: &str) {
|
||||
let out = rustc()
|
||||
.input("multiple-candidates.rs")
|
||||
.library_search_path(library_path)
|
||||
.ui_testing()
|
||||
.run_fail()
|
||||
.stderr_utf8();
|
||||
diff()
|
||||
.expected_file("multiple-candidates.stderr")
|
||||
.normalize(r"\\", "/")
|
||||
.actual_text("(rustc)", &out)
|
||||
.run();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue