Skip to content

Commit c40cfcf

Browse files
committed
Auto merge of rust-lang#115035 - ShE3py:getsetenv-miri-test, r=thomcc
Add data race test to `std::env::{get, set}` Complements rust-lang#114968, closes rust-lang#114949.
2 parents 8a562f9 + f8a2f31 commit c40cfcf

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

library/std/tests/env.rs

+20
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use rand::distributions::{Alphanumeric, DistString};
55

66
mod common;
77
use common::test_rng;
8+
use std::thread;
89

910
#[track_caller]
1011
fn make_rand_name() -> OsString {
@@ -140,3 +141,22 @@ fn env_home_dir() {
140141
}
141142
}
142143
}
144+
145+
#[test] // miri shouldn't detect any data race in this fn
146+
#[cfg_attr(any(not(miri), target_os = "emscripten"), ignore)]
147+
fn test_env_get_set_multithreaded() {
148+
let getter = thread::spawn(|| {
149+
for _ in 0..100 {
150+
let _ = var_os("foo");
151+
}
152+
});
153+
154+
let setter = thread::spawn(|| {
155+
for _ in 0..100 {
156+
set_var("foo", "bar");
157+
}
158+
});
159+
160+
let _ = getter.join();
161+
let _ = setter.join();
162+
}

0 commit comments

Comments
 (0)