summaryrefslogtreecommitdiffstats
path: root/src/test/ui/issues/issue-33770.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /src/test/ui/issues/issue-33770.rs
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/issues/issue-33770.rs')
-rw-r--r--src/test/ui/issues/issue-33770.rs94
1 files changed, 0 insertions, 94 deletions
diff --git a/src/test/ui/issues/issue-33770.rs b/src/test/ui/issues/issue-33770.rs
deleted file mode 100644
index f3c99015b..000000000
--- a/src/test/ui/issues/issue-33770.rs
+++ /dev/null
@@ -1,94 +0,0 @@
-// run-pass
-// ignore-emscripten no processes
-// ignore-sgx no processes
-
-use std::process::{Command, Stdio};
-use std::env;
-use std::sync::{Mutex, RwLock};
-use std::time::Duration;
-use std::thread;
-
-fn test_mutex() {
- let m = Mutex::new(0);
- let _g = m.lock().unwrap();
- let _g2 = m.lock().unwrap();
-}
-
-fn test_try_mutex() {
- let m = Mutex::new(0);
- let _g = m.lock().unwrap();
- let _g2 = m.try_lock().unwrap();
-}
-
-fn test_rwlock_ww() {
- let m = RwLock::new(0);
- let _g = m.write().unwrap();
- let _g2 = m.write().unwrap();
-}
-
-fn test_try_rwlock_ww() {
- let m = RwLock::new(0);
- let _g = m.write().unwrap();
- let _g2 = m.try_write().unwrap();
-}
-
-fn test_rwlock_rw() {
- let m = RwLock::new(0);
- let _g = m.read().unwrap();
- let _g2 = m.write().unwrap();
-}
-
-fn test_try_rwlock_rw() {
- let m = RwLock::new(0);
- let _g = m.read().unwrap();
- let _g2 = m.try_write().unwrap();
-}
-
-fn test_rwlock_wr() {
- let m = RwLock::new(0);
- let _g = m.write().unwrap();
- let _g2 = m.read().unwrap();
-}
-
-fn test_try_rwlock_wr() {
- let m = RwLock::new(0);
- let _g = m.write().unwrap();
- let _g2 = m.try_read().unwrap();
-}
-
-fn main() {
- let args: Vec<String> = env::args().collect();
- if args.len() > 1 {
- match &*args[1] {
- "mutex" => test_mutex(),
- "try_mutex" => test_try_mutex(),
- "rwlock_ww" => test_rwlock_ww(),
- "try_rwlock_ww" => test_try_rwlock_ww(),
- "rwlock_rw" => test_rwlock_rw(),
- "try_rwlock_rw" => test_try_rwlock_rw(),
- "rwlock_wr" => test_rwlock_wr(),
- "try_rwlock_wr" => test_try_rwlock_wr(),
- _ => unreachable!(),
- }
- // If we reach this point then the test failed
- println!("TEST FAILED: {}", args[1]);
- } else {
- let mut v = vec![];
- v.push(Command::new(&args[0]).arg("mutex").stderr(Stdio::null()).spawn().unwrap());
- v.push(Command::new(&args[0]).arg("try_mutex").stderr(Stdio::null()).spawn().unwrap());
- v.push(Command::new(&args[0]).arg("rwlock_ww").stderr(Stdio::null()).spawn().unwrap());
- v.push(Command::new(&args[0]).arg("try_rwlock_ww").stderr(Stdio::null()).spawn().unwrap());
- v.push(Command::new(&args[0]).arg("rwlock_rw").stderr(Stdio::null()).spawn().unwrap());
- v.push(Command::new(&args[0]).arg("try_rwlock_rw").stderr(Stdio::null()).spawn().unwrap());
- v.push(Command::new(&args[0]).arg("rwlock_wr").stderr(Stdio::null()).spawn().unwrap());
- v.push(Command::new(&args[0]).arg("try_rwlock_wr").stderr(Stdio::null()).spawn().unwrap());
-
- thread::sleep(Duration::new(1, 0));
-
- // Make sure all subprocesses either panicked or were killed because they deadlocked
- for mut c in v {
- c.kill().ok();
- assert!(!c.wait().unwrap().success());
- }
- }
-}