@@ -2032,11 +2032,14 @@ mod tests {
2032
2032
2033
2033
#[ test]
2034
2034
fn test_atomic_accesses ( ) {
2035
- let mut backing = vec ! [ 0u8 ; 0x1000 ] ;
2036
- let a = VolatileSlice :: from ( backing . as_mut_slice ( ) ) ;
2037
- let s = a . as_volatile_slice ( ) ;
2035
+ let len = 0x1000 ;
2036
+ let buf = unsafe { std :: alloc :: alloc_zeroed ( Layout :: from_size_align ( len , 8 ) . unwrap ( ) ) } ;
2037
+ let a = unsafe { VolatileSlice :: new ( buf , len ) } ;
2038
2038
2039
- crate :: bytes:: tests:: check_atomic_accesses ( s, 0 , 0x1000 ) ;
2039
+ crate :: bytes:: tests:: check_atomic_accesses ( a, 0 , 0x1000 ) ;
2040
+ unsafe {
2041
+ std:: alloc:: dealloc ( buf, Layout :: from_size_align ( len, 8 ) . unwrap ( ) ) ;
2042
+ }
2040
2043
}
2041
2044
2042
2045
#[ test]
@@ -2067,14 +2070,13 @@ mod tests {
2067
2070
let dirty_len = size_of_val ( & val) ;
2068
2071
let page_size = 0x1000 ;
2069
2072
2070
- let mut buf = vec ! [ 0u8 ; 0x10000 ] ;
2073
+ let len = 0x10000 ;
2074
+ let buf = unsafe { std:: alloc:: alloc_zeroed ( Layout :: from_size_align ( len, 8 ) . unwrap ( ) ) } ;
2071
2075
2072
2076
// Invoke the `Bytes` test helper function.
2073
2077
{
2074
- let bitmap = AtomicBitmap :: new ( buf. len ( ) , page_size) ;
2075
- let slice = unsafe {
2076
- VolatileSlice :: with_bitmap ( buf. as_mut_ptr ( ) , buf. len ( ) , bitmap. slice_at ( 0 ) )
2077
- } ;
2078
+ let bitmap = AtomicBitmap :: new ( len, page_size) ;
2079
+ let slice = unsafe { VolatileSlice :: with_bitmap ( buf, len, bitmap. slice_at ( 0 ) ) } ;
2078
2080
2079
2081
test_bytes (
2080
2082
& slice,
@@ -2089,24 +2091,19 @@ mod tests {
2089
2091
2090
2092
// Invoke the `VolatileMemory` test helper function.
2091
2093
{
2092
- let bitmap = AtomicBitmap :: new ( buf. len ( ) , page_size) ;
2093
- let slice = unsafe {
2094
- VolatileSlice :: with_bitmap ( buf. as_mut_ptr ( ) , buf. len ( ) , bitmap. slice_at ( 0 ) )
2095
- } ;
2094
+ let bitmap = AtomicBitmap :: new ( len, page_size) ;
2095
+ let slice = unsafe { VolatileSlice :: with_bitmap ( buf, len, bitmap. slice_at ( 0 ) ) } ;
2096
2096
test_volatile_memory ( & slice) ;
2097
2097
}
2098
2098
2099
- let bitmap = AtomicBitmap :: new ( buf. len ( ) , page_size) ;
2100
- let slice =
2101
- unsafe { VolatileSlice :: with_bitmap ( buf. as_mut_ptr ( ) , buf. len ( ) , bitmap. slice_at ( 0 ) ) } ;
2099
+ let bitmap = AtomicBitmap :: new ( len, page_size) ;
2100
+ let slice = unsafe { VolatileSlice :: with_bitmap ( buf, len, bitmap. slice_at ( 0 ) ) } ;
2102
2101
2103
- let bitmap2 = AtomicBitmap :: new ( buf. len ( ) , page_size) ;
2104
- let slice2 =
2105
- unsafe { VolatileSlice :: with_bitmap ( buf. as_mut_ptr ( ) , buf. len ( ) , bitmap2. slice_at ( 0 ) ) } ;
2102
+ let bitmap2 = AtomicBitmap :: new ( len, page_size) ;
2103
+ let slice2 = unsafe { VolatileSlice :: with_bitmap ( buf, len, bitmap2. slice_at ( 0 ) ) } ;
2106
2104
2107
- let bitmap3 = AtomicBitmap :: new ( buf. len ( ) , page_size) ;
2108
- let slice3 =
2109
- unsafe { VolatileSlice :: with_bitmap ( buf. as_mut_ptr ( ) , buf. len ( ) , bitmap3. slice_at ( 0 ) ) } ;
2105
+ let bitmap3 = AtomicBitmap :: new ( len, page_size) ;
2106
+ let slice3 = unsafe { VolatileSlice :: with_bitmap ( buf, len, bitmap3. slice_at ( 0 ) ) } ;
2110
2107
2111
2108
assert ! ( range_is_clean( slice. bitmap( ) , 0 , slice. len( ) ) ) ;
2112
2109
assert ! ( range_is_clean( slice2. bitmap( ) , 0 , slice2. len( ) ) ) ;
@@ -2151,6 +2148,10 @@ mod tests {
2151
2148
slice3. copy_from ( & buf) ;
2152
2149
assert ! ( range_is_dirty( slice3. bitmap( ) , 0 , dirty_offset) ) ;
2153
2150
}
2151
+
2152
+ unsafe {
2153
+ std:: alloc:: dealloc ( buf, Layout :: from_size_align ( len, 8 ) . unwrap ( ) ) ;
2154
+ }
2154
2155
}
2155
2156
2156
2157
#[ test]
0 commit comments