in cargo/cargo_build_script_runner/lib.rs [215:285]
fn test_from_read_buffer_to_env_and_flags() {
let buff = Cursor::new(
"
cargo:rustc-link-lib=sdfsdf
cargo:rustc-env=FOO=BAR
cargo:rustc-link-search=/some/absolute/path/bleh
cargo:rustc-env=BAR=FOO
cargo:rustc-flags=-Lblah
cargo:rerun-if-changed=ignored
cargo:rustc-cfg=feature=awesome
cargo:version=123
cargo:version_number=1010107f
cargo:include_path=/some/absolute/path/include
cargo:rustc-env=SOME_PATH=/some/absolute/path/beep
cargo:rustc-link-arg=-weak_framework
cargo:rustc-link-arg=Metal
",
);
let reader = BufReader::new(buff);
let result = BuildScriptOutput::outputs_from_reader(reader);
assert_eq!(result.len(), 12);
assert_eq!(result[0], BuildScriptOutput::LinkLib("sdfsdf".to_owned()));
assert_eq!(result[1], BuildScriptOutput::Env("FOO=BAR".to_owned()));
assert_eq!(
result[2],
BuildScriptOutput::LinkSearch("/some/absolute/path/bleh".to_owned())
);
assert_eq!(result[3], BuildScriptOutput::Env("BAR=FOO".to_owned()));
assert_eq!(result[4], BuildScriptOutput::Flags("-Lblah".to_owned()));
assert_eq!(
result[5],
BuildScriptOutput::Cfg("feature=awesome".to_owned())
);
assert_eq!(
result[6],
BuildScriptOutput::DepEnv("VERSION=123".to_owned())
);
assert_eq!(
result[7],
BuildScriptOutput::DepEnv("VERSION_NUMBER=1010107f".to_owned())
);
assert_eq!(
result[9],
BuildScriptOutput::Env("SOME_PATH=/some/absolute/path/beep".to_owned())
);
assert_eq!(
result[10],
BuildScriptOutput::LinkArg("-weak_framework".to_owned())
);
assert_eq!(result[11], BuildScriptOutput::LinkArg("Metal".to_owned()));
assert_eq!(
BuildScriptOutput::outputs_to_dep_env(&result, "ssh2", "/some/absolute/path"),
"DEP_SSH2_VERSION=123\nDEP_SSH2_VERSION_NUMBER=1010107f\nDEP_SSH2_INCLUDE_PATH=${pwd}/include".to_owned()
);
assert_eq!(
BuildScriptOutput::outputs_to_env(&result, "/some/absolute/path"),
"FOO=BAR\nBAR=FOO\nSOME_PATH=${pwd}/beep".to_owned()
);
assert_eq!(
BuildScriptOutput::outputs_to_flags(&result, "/some/absolute/path"),
CompileAndLinkFlags {
// -Lblah was output as a rustc-flags, so even though it probably _should_ be a link
// flag, we don't treat it like one.
compile_flags:
"-Lblah\n--cfg=feature=awesome\n-Clink-arg=-weak_framework\n-Clink-arg=Metal"
.to_owned(),
link_flags: "-lsdfsdf\n-L${pwd}/bleh".to_owned(),
}
);
}