diff options
Diffstat (limited to 'src/libcoretest')
| -rw-r--r-- | src/libcoretest/cell.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/libcoretest/cell.rs b/src/libcoretest/cell.rs index 85dd1039003..0bd0b66318f 100644 --- a/src/libcoretest/cell.rs +++ b/src/libcoretest/cell.rs @@ -159,3 +159,27 @@ fn refcell_default() { let cell: RefCell<u64> = Default::default(); assert_eq!(0, *cell.borrow()); } + +#[test] +fn unsafe_cell_unsized() { + let cell: &UnsafeCell<[i32]> = &UnsafeCell::new([1, 2, 3]); + { + let val: &mut [i32] = unsafe { &mut *cell.get() }; + val[0] = 4; + val[2] = 5; + } + let comp: &mut [i32] = &mut [4, 2, 5]; + assert_eq!(unsafe { &mut *cell.get() }, comp); +} + +#[test] +fn refcell_unsized() { + let cell: &RefCell<[i32]> = &RefCell::new([1, 2, 3]); + { + let b = &mut *cell.borrow_mut(); + b[0] = 4; + b[2] = 5; + } + let comp: &mut [i32] = &mut [4, 2, 5]; + assert_eq!(&*cell.borrow(), comp); +} |
