Vendor dependencies
Let's see how I like this workflow.
This commit is contained in:
parent
34d1830413
commit
9c435dc440
7500 changed files with 1665121 additions and 99 deletions
118
vendor/cc/tests/cc_env.rs
vendored
Normal file
118
vendor/cc/tests/cc_env.rs
vendored
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
use std::env;
|
||||
use std::ffi::OsString;
|
||||
use std::path::Path;
|
||||
|
||||
mod support;
|
||||
use crate::support::Test;
|
||||
|
||||
#[test]
|
||||
fn main() {
|
||||
ccache();
|
||||
distcc();
|
||||
ccache_spaces();
|
||||
ccache_env_flags();
|
||||
leading_spaces();
|
||||
extra_flags();
|
||||
path_to_ccache();
|
||||
more_spaces();
|
||||
}
|
||||
|
||||
fn ccache() {
|
||||
let test = Test::gnu();
|
||||
|
||||
env::set_var("CC", "ccache cc");
|
||||
let compiler = test.gcc().file("foo.c").get_compiler();
|
||||
|
||||
assert_eq!(compiler.path(), Path::new("cc"));
|
||||
}
|
||||
|
||||
fn ccache_spaces() {
|
||||
let test = Test::gnu();
|
||||
test.shim("ccache");
|
||||
|
||||
env::set_var("CC", "ccache cc");
|
||||
let compiler = test.gcc().file("foo.c").get_compiler();
|
||||
assert_eq!(compiler.path(), Path::new("cc"));
|
||||
}
|
||||
|
||||
fn distcc() {
|
||||
let test = Test::gnu();
|
||||
test.shim("distcc");
|
||||
|
||||
env::set_var("CC", "distcc cc");
|
||||
let compiler = test.gcc().file("foo.c").get_compiler();
|
||||
assert_eq!(compiler.path(), Path::new("cc"));
|
||||
}
|
||||
|
||||
fn ccache_env_flags() {
|
||||
let test = Test::gnu();
|
||||
test.shim("ccache");
|
||||
|
||||
env::set_var("CC", "ccache lol-this-is-not-a-compiler");
|
||||
let compiler = test.gcc().file("foo.c").get_compiler();
|
||||
assert_eq!(compiler.path(), Path::new("lol-this-is-not-a-compiler"));
|
||||
assert_eq!(
|
||||
compiler.cc_env(),
|
||||
OsString::from("ccache lol-this-is-not-a-compiler")
|
||||
);
|
||||
assert!(
|
||||
compiler
|
||||
.cflags_env()
|
||||
.into_string()
|
||||
.unwrap()
|
||||
.contains("ccache")
|
||||
== false
|
||||
);
|
||||
assert!(
|
||||
compiler
|
||||
.cflags_env()
|
||||
.into_string()
|
||||
.unwrap()
|
||||
.contains(" lol-this-is-not-a-compiler")
|
||||
== false
|
||||
);
|
||||
|
||||
env::set_var("CC", "");
|
||||
}
|
||||
|
||||
fn leading_spaces() {
|
||||
let test = Test::gnu();
|
||||
test.shim("ccache");
|
||||
|
||||
env::set_var("CC", " test ");
|
||||
let compiler = test.gcc().file("foo.c").get_compiler();
|
||||
assert_eq!(compiler.path(), Path::new("test"));
|
||||
|
||||
env::set_var("CC", "");
|
||||
}
|
||||
|
||||
fn extra_flags() {
|
||||
let test = Test::gnu();
|
||||
test.shim("ccache");
|
||||
|
||||
env::set_var("CC", "ccache cc -m32");
|
||||
let compiler = test.gcc().file("foo.c").get_compiler();
|
||||
assert_eq!(compiler.path(), Path::new("cc"));
|
||||
}
|
||||
|
||||
fn path_to_ccache() {
|
||||
let test = Test::gnu();
|
||||
test.shim("ccache");
|
||||
|
||||
env::set_var("CC", "/path/to/ccache.exe cc -m32");
|
||||
let compiler = test.gcc().file("foo.c").get_compiler();
|
||||
assert_eq!(compiler.path(), Path::new("cc"));
|
||||
assert_eq!(
|
||||
compiler.cc_env(),
|
||||
OsString::from("/path/to/ccache.exe cc -m32"),
|
||||
);
|
||||
}
|
||||
|
||||
fn more_spaces() {
|
||||
let test = Test::gnu();
|
||||
test.shim("ccache");
|
||||
|
||||
env::set_var("CC", "cc -m32");
|
||||
let compiler = test.gcc().file("foo.c").get_compiler();
|
||||
assert_eq!(compiler.path(), Path::new("cc"));
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue