rust/tests/run-make/extern-multiple-copies2/rmake.rs
2024-07-23 15:08:40 -04:00

23 lines
972 B
Rust

// Almost identical to `extern-multiple-copies`, but with a variation in the --extern calls
// and the addition of #[macro_use] in the rust code files, which used to break --extern
// until #33625.
// In this test, the rust library foo1 exists in two different locations, but only one
// is required by the --extern flag. This test checks that the copy is ignored (as --extern
// demands fetching only the original instance of foo1) and that no error is emitted, resulting
// in successful compilation.
// https://github.com/rust-lang/rust/issues/33762
use run_make_support::{path, rfs, rust_lib_name, rustc};
fn main() {
rustc().input("foo1.rs").run();
rustc().input("foo2.rs").run();
rfs::create_dir("foo");
rfs::copy(rust_lib_name("foo1"), path("foo").join(rust_lib_name("foo1")));
rustc()
.input("bar.rs")
.extern_("foo1", path("foo").join(rust_lib_name("foo1")))
.extern_("foo2", rust_lib_name("foo2"))
.run();
}