diff options
| author | Ralf Jung <post@ralfj.de> | 2024-10-14 21:36:37 +0200 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2024-10-14 21:37:34 +0200 |
| commit | af9842428587d1bf05a8a432411b0ade0d5b2c8e (patch) | |
| tree | 79f78571f448a82f6ce7c2d1b63967d814760ec8 /src | |
| parent | d3c1036255f2c8a9b102a1bbf13ef2f8ece3edf5 (diff) | |
| download | rust-af9842428587d1bf05a8a432411b0ade0d5b2c8e.tar.gz rust-af9842428587d1bf05a8a432411b0ade0d5b2c8e.zip | |
add test ensuring a moved mutex deadlocks
Diffstat (limited to 'src')
| -rw-r--r-- | src/tools/miri/tests/fail/concurrency/mutex-leak-move-deadlock.rs | 16 | ||||
| -rw-r--r-- | src/tools/miri/tests/fail/concurrency/mutex-leak-move-deadlock.stderr | 16 |
2 files changed, 32 insertions, 0 deletions
diff --git a/src/tools/miri/tests/fail/concurrency/mutex-leak-move-deadlock.rs b/src/tools/miri/tests/fail/concurrency/mutex-leak-move-deadlock.rs new file mode 100644 index 00000000000..b996fcaf45d --- /dev/null +++ b/src/tools/miri/tests/fail/concurrency/mutex-leak-move-deadlock.rs @@ -0,0 +1,16 @@ +//@error-in-other-file: deadlock +//@normalize-stderr-test: "src/sys/.*\.rs" -> "$$FILE" +//@normalize-stderr-test: "LL \| .*" -> "LL | $$CODE" +//@normalize-stderr-test: "\| +\^+" -> "| ^" +//@normalize-stderr-test: "\n *= note:.*" -> "" +use std::mem; +use std::sync::Mutex; + +fn main() { + let m = Mutex::new(0); + mem::forget(m.lock()); + // Move the lock while it is "held" (really: leaked) + let m2 = m; + // Now try to acquire the lock again. + let _guard = m2.lock(); +} diff --git a/src/tools/miri/tests/fail/concurrency/mutex-leak-move-deadlock.stderr b/src/tools/miri/tests/fail/concurrency/mutex-leak-move-deadlock.stderr new file mode 100644 index 00000000000..0ca8b3558d4 --- /dev/null +++ b/src/tools/miri/tests/fail/concurrency/mutex-leak-move-deadlock.stderr @@ -0,0 +1,16 @@ +error: deadlock: the evaluated program deadlocked + --> RUSTLIB/std/$FILE:LL:CC + | +LL | $CODE + | ^ the evaluated program deadlocked + | +note: inside `main` + --> tests/fail/concurrency/mutex-leak-move-deadlock.rs:LL:CC + | +LL | $CODE + | ^ + +note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace + +error: aborting due to 1 previous error + |
