// In this test, the symlink created is invalid (valid relative to the root, but not relatively to // where it is located), and used to cause an internal compiler error (ICE) when passed as a library // search path. This was fixed in #26044, and this test checks that the invalid symlink is instead // simply ignored. // // See https://github.com/rust-lang/rust/issues/26006 //@ needs-symlink //Reason: symlink requires elevated permission in Windows use run_make_support::{path, rfs, rustc}; fn main() { // We create two libs: `bar` which depends on `foo`. We need to compile `foo` first. rfs::create_dir("out"); rfs::create_dir("out/foo"); rustc() .input("in/foo/lib.rs") .crate_name("foo") .crate_type("lib") .metadata("foo") .output("out/foo/libfoo.rlib") .run(); rfs::create_dir_all("out/bar/deps"); rfs::symlink_file(path("out/foo/libfoo.rlib"), path("out/bar/deps/libfoo.rlib")); // Check that the invalid symlink does not cause an ICE rustc() .input("in/bar/lib.rs") .library_search_path("dependency=out/bar/deps") .run_fail() .assert_exit_code(1) .assert_stderr_not_contains("internal compiler error"); }