//! Check that linking frameworks on Apple platforms works. //@ only-apple use run_make_support::{Rustc, run, rustc}; fn compile(cfg: &str) -> Rustc { let mut rustc = rustc(); rustc.cfg(cfg).input("main.rs"); rustc } fn main() { for cfg in ["link", "weak", "both"] { compile(cfg).run(); run("main"); } let errs = compile("omit").run_fail(); // The linker's exact error output changes between Xcode versions, depends on // linker invocation details, and the linker sometimes outputs more warnings. errs.assert_stderr_contains_regex(r"error: linking with `.*` failed"); errs.assert_stderr_contains_regex(r"(Undefined symbols|ld: symbol[^\s]* not found)"); errs.assert_stderr_contains_regex(r".?_CFRunLoopGetTypeID.?, referenced from:"); errs.assert_stderr_contains("clang: error: linker command failed with exit code 1"); }