// A simple smoke test to check that rustc fails compilation
// and outputs a helpful message when a dependency is missing
// in a dependency chain.
// See https://github.com/rust-lang/rust/issues/12146

use run_make_support::{rfs, rust_lib_name, rustc};

fn main() {
    rustc().crate_type("rlib").input("crateA.rs").run();
    rustc().crate_type("rlib").input("crateB.rs").run();
    rfs::remove_file(rust_lib_name("crateA"));
    // Ensure that crateC fails to compile, as the crateA dependency is missing.
    rustc()
        .input("crateC.rs")
        .run_fail()
        .assert_stderr_contains("can't find crate for `crateA` which `crateB` depends on");
}
