Skip to content

Commit 453ff1e

Browse files
Add tests for --env usage with tracked_env::var
1 parent 5967ceb commit 453ff1e

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

tests/ui/proc-macro/auxiliary/env.rs

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// force-host
2+
// no-prefer-dynamic
3+
4+
#![crate_type = "proc-macro"]
5+
#![feature(proc_macro_tracked_env)]
6+
7+
extern crate proc_macro;
8+
9+
use proc_macro::TokenStream;
10+
use proc_macro::tracked_env::var;
11+
12+
#[proc_macro]
13+
pub fn generate_const(input: TokenStream) -> TokenStream {
14+
let the_const = match var("THE_CONST") {
15+
Ok(x) if x == "12" => {
16+
"const THE_CONST: u32 = 12;"
17+
}
18+
_ => {
19+
"const THE_CONST: u32 = 0;"
20+
}
21+
};
22+
let another = if var("ANOTHER").is_ok() {
23+
"const ANOTHER: u32 = 1;"
24+
} else {
25+
"const ANOTHER: u32 = 2;"
26+
};
27+
format!("{the_const}{another}").parse().unwrap()
28+
}

tests/ui/proc-macro/env.rs

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// aux-build:env.rs
2+
// run-pass
3+
// rustc-env: THE_CONST=1
4+
// compile-flags: -Zunstable-options --env THE_CONST=12 --env ANOTHER=4
5+
6+
#![crate_name = "foo"]
7+
8+
extern crate env;
9+
10+
use env::generate_const;
11+
12+
generate_const!();
13+
14+
fn main() {
15+
assert_eq!(THE_CONST, 12);
16+
assert_eq!(ANOTHER, 1);
17+
}

0 commit comments

Comments
 (0)