// Check that linking to a framework actually makes it to the linker. //@ only-apple use run_make_support::{cmd, rustc}; fn main() { rustc().input("dep-link-framework.rs").run(); rustc().input("dep-link-weak-framework.rs").run(); rustc().input("empty.rs").run(); cmd("otool").arg("-L").arg("no-link").run_fail().assert_stdout_not_contains("CoreFoundation"); rustc().input("link-framework.rs").run(); cmd("otool") .arg("-L") .arg("link-framework") .run() .assert_stdout_contains("CoreFoundation") .assert_stdout_not_contains("weak"); rustc().input("link-weak-framework.rs").run(); cmd("otool") .arg("-L") .arg("link-weak-framework") .run() .assert_stdout_contains("CoreFoundation") .assert_stdout_contains("weak"); // When linking the framework both normally, and weakly, the weak linking takes preference. rustc().input("link-both.rs").run(); cmd("otool") .arg("-L") .arg("link-both") .run() .assert_stdout_contains("CoreFoundation") .assert_stdout_contains("weak"); }