diff options
| author | Ben Kimock <kimockb@gmail.com> | 2022-10-14 20:04:27 -0400 |
|---|---|---|
| committer | Ben Kimock <kimockb@gmail.com> | 2022-10-14 20:04:27 -0400 |
| commit | 26186d7ff247b74287f21dfebcd08d0d5e0152aa (patch) | |
| tree | 89469d966a937b6624d90409351ad4daaf66a40c | |
| parent | 79cd6f38f3546505f5e7a6e5ce4f696ea6b19d19 (diff) | |
| download | rust-26186d7ff247b74287f21dfebcd08d0d5e0152aa.tar.gz rust-26186d7ff247b74287f21dfebcd08d0d5e0152aa.zip | |
Add a test
| -rw-r--r-- | src/tools/miri/tests/pass/stacked-borrows/stack-printing.rs | 29 | ||||
| -rw-r--r-- | src/tools/miri/tests/pass/stacked-borrows/stack-printing.stdout | 5 |
2 files changed, 34 insertions, 0 deletions
diff --git a/src/tools/miri/tests/pass/stacked-borrows/stack-printing.rs b/src/tools/miri/tests/pass/stacked-borrows/stack-printing.rs new file mode 100644 index 00000000000..8d96a2e1ca9 --- /dev/null +++ b/src/tools/miri/tests/pass/stacked-borrows/stack-printing.rs @@ -0,0 +1,29 @@ +use std::{ + alloc::{self, Layout}, + mem::ManuallyDrop, +}; + +extern "Rust" { + fn miri_get_alloc_id(ptr: *const u8) -> u64; + fn miri_print_stacks(alloc_id: u64); +} + +fn main() { + let ptr = unsafe { alloc::alloc(Layout::new::<u8>()) }; + let alloc_id = unsafe { miri_get_alloc_id(ptr) }; + unsafe { miri_print_stacks(alloc_id) }; + + assert!(!ptr.is_null()); + unsafe { miri_print_stacks(alloc_id) }; + + unsafe { *ptr = 42 }; + unsafe { miri_print_stacks(alloc_id) }; + + let _b = unsafe { ManuallyDrop::new(Box::from_raw(ptr)) }; + unsafe { miri_print_stacks(alloc_id) }; + + let _ptr = unsafe { &*ptr }; + unsafe { miri_print_stacks(alloc_id) }; + + unsafe { alloc::dealloc(ptr, Layout::new::<u8>()) }; +} diff --git a/src/tools/miri/tests/pass/stacked-borrows/stack-printing.stdout b/src/tools/miri/tests/pass/stacked-borrows/stack-printing.stdout new file mode 100644 index 00000000000..6d4f15453d2 --- /dev/null +++ b/src/tools/miri/tests/pass/stacked-borrows/stack-printing.stdout @@ -0,0 +1,5 @@ +0..1: [ SharedReadWrite<2794> ] +0..1: [ SharedReadWrite<2794> ] +0..1: [ SharedReadWrite<2794> ] +0..1: [ SharedReadWrite<2794> Unique<2822> Unique<2823> Unique<2824> Unique<2828> Unique<2830> ] +0..1: [ SharedReadWrite<2794> Disabled<2822> Disabled<2823> Disabled<2824> Disabled<2828> Disabled<2830> SharedReadOnly<2832> ] |
