Add tests for --env
usage with tracked_env::var
This commit is contained in:
parent
5967ceb48d
commit
453ff1efd5
28
tests/ui/proc-macro/auxiliary/env.rs
Normal file
28
tests/ui/proc-macro/auxiliary/env.rs
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
// force-host
|
||||||
|
// no-prefer-dynamic
|
||||||
|
|
||||||
|
#![crate_type = "proc-macro"]
|
||||||
|
#![feature(proc_macro_tracked_env)]
|
||||||
|
|
||||||
|
extern crate proc_macro;
|
||||||
|
|
||||||
|
use proc_macro::TokenStream;
|
||||||
|
use proc_macro::tracked_env::var;
|
||||||
|
|
||||||
|
#[proc_macro]
|
||||||
|
pub fn generate_const(input: TokenStream) -> TokenStream {
|
||||||
|
let the_const = match var("THE_CONST") {
|
||||||
|
Ok(x) if x == "12" => {
|
||||||
|
"const THE_CONST: u32 = 12;"
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
|
"const THE_CONST: u32 = 0;"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
let another = if var("ANOTHER").is_ok() {
|
||||||
|
"const ANOTHER: u32 = 1;"
|
||||||
|
} else {
|
||||||
|
"const ANOTHER: u32 = 2;"
|
||||||
|
};
|
||||||
|
format!("{the_const}{another}").parse().unwrap()
|
||||||
|
}
|
17
tests/ui/proc-macro/env.rs
Normal file
17
tests/ui/proc-macro/env.rs
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
// aux-build:env.rs
|
||||||
|
// run-pass
|
||||||
|
// rustc-env: THE_CONST=1
|
||||||
|
// compile-flags: -Zunstable-options --env THE_CONST=12 --env ANOTHER=4
|
||||||
|
|
||||||
|
#![crate_name = "foo"]
|
||||||
|
|
||||||
|
extern crate env;
|
||||||
|
|
||||||
|
use env::generate_const;
|
||||||
|
|
||||||
|
generate_const!();
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
assert_eq!(THE_CONST, 12);
|
||||||
|
assert_eq!(ANOTHER, 1);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user