add test for concurrent env var access
This commit is contained in:
parent
d7c89cfbf8
commit
26af88aced
1 changed files with 8 additions and 0 deletions
8
src/tools/miri/tests/pass/shims/env/var.rs
vendored
8
src/tools/miri/tests/pass/shims/env/var.rs
vendored
|
@ -1,4 +1,5 @@
|
||||||
use std::env;
|
use std::env;
|
||||||
|
use std::thread;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
// Test that miri environment is isolated when communication is disabled.
|
// Test that miri environment is isolated when communication is disabled.
|
||||||
|
@ -23,4 +24,11 @@ fn main() {
|
||||||
env::remove_var("MIRI_TEST");
|
env::remove_var("MIRI_TEST");
|
||||||
assert_eq!(env::var("MIRI_TEST"), Err(env::VarError::NotPresent));
|
assert_eq!(env::var("MIRI_TEST"), Err(env::VarError::NotPresent));
|
||||||
println!("{:#?}", env::vars().collect::<Vec<_>>());
|
println!("{:#?}", env::vars().collect::<Vec<_>>());
|
||||||
|
|
||||||
|
// Do things concurrently, to make sure there's no data race.
|
||||||
|
let t = thread::spawn(|| {
|
||||||
|
env::set_var("MIRI_TEST", "42");
|
||||||
|
});
|
||||||
|
env::set_var("MIRI_TEST", "42");
|
||||||
|
t.join().unwrap();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue