about summary refs log tree commit diff
path: root/tests/ui/backtrace/synchronized-panic-handler.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/backtrace/synchronized-panic-handler.rs')
-rw-r--r--tests/ui/backtrace/synchronized-panic-handler.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/ui/backtrace/synchronized-panic-handler.rs b/tests/ui/backtrace/synchronized-panic-handler.rs
new file mode 100644
index 00000000000..00eb249da1d
--- /dev/null
+++ b/tests/ui/backtrace/synchronized-panic-handler.rs
@@ -0,0 +1,17 @@
+//@ run-pass
+//@ check-run-results
+//@ edition:2021
+//@ exec-env:RUST_BACKTRACE=0
+//@ needs-threads
+use std::thread;
+const PANIC_MESSAGE: &str = "oops oh no woe is me";
+
+fn entry() {
+    panic!("{PANIC_MESSAGE}")
+}
+
+fn main() {
+    let (a, b) = (thread::spawn(entry), thread::spawn(entry));
+    assert_eq!(&**a.join().unwrap_err().downcast::<String>().unwrap(), PANIC_MESSAGE);
+    assert_eq!(&**b.join().unwrap_err().downcast::<String>().unwrap(), PANIC_MESSAGE);
+}