Add a test
This commit is contained in:
parent
79cd6f38f3
commit
26186d7ff2
2 changed files with 34 additions and 0 deletions
29
src/tools/miri/tests/pass/stacked-borrows/stack-printing.rs
Normal file
29
src/tools/miri/tests/pass/stacked-borrows/stack-printing.rs
Normal file
|
|
@ -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>()) };
|
||||
}
|
||||
|
|
@ -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> ]
|
||||
Loading…
Add table
Add a link
Reference in a new issue