@@ -140,14 +140,12 @@ impl<M: GuestMemory> GuestMemoryExclusiveGuard<'_, M> {
140
140
}
141
141
142
142
#[ cfg( test) ]
143
- #[ cfg( feature = "backend-mmap" ) ]
144
143
mod tests {
145
144
use super :: * ;
146
- use crate :: { GuestAddress , GuestMemory , GuestMemoryRegion , GuestUsize , MmapRegion } ;
145
+ use crate :: region:: tests:: { new_guest_memory_collection_from_regions, Collection , MockRegion } ;
146
+ use crate :: { GuestAddress , GuestMemory , GuestMemoryRegion , GuestUsize } ;
147
147
148
- type GuestMemoryMmap = crate :: GuestMemoryMmap < ( ) > ;
149
- type GuestRegionMmap = crate :: GuestRegionMmap < ( ) > ;
150
- type GuestMemoryMmapAtomic = GuestMemoryAtomic < GuestMemoryMmap > ;
148
+ type GuestMemoryMmapAtomic = GuestMemoryAtomic < Collection > ;
151
149
152
150
#[ test]
153
151
fn test_atomic_memory ( ) {
@@ -157,7 +155,7 @@ mod tests {
157
155
( GuestAddress ( 0x1000 ) , region_size) ,
158
156
] ;
159
157
let mut iterated_regions = Vec :: new ( ) ;
160
- let gmm = GuestMemoryMmap :: from_ranges ( & regions) . unwrap ( ) ;
158
+ let gmm = new_guest_memory_collection_from_regions ( & regions) . unwrap ( ) ;
161
159
let gm = GuestMemoryMmapAtomic :: new ( gmm) ;
162
160
let mem = gm. memory ( ) ;
163
161
@@ -166,7 +164,7 @@ mod tests {
166
164
}
167
165
168
166
for region in mem. iter ( ) {
169
- iterated_regions. push ( ( region. start_addr ( ) , region. len ( ) as usize ) ) ;
167
+ iterated_regions. push ( ( region. start_addr ( ) , region. len ( ) ) ) ;
170
168
}
171
169
assert_eq ! ( regions, iterated_regions) ;
172
170
assert_eq ! ( mem. num_regions( ) , 2 ) ;
@@ -207,7 +205,7 @@ mod tests {
207
205
( GuestAddress ( 0x0 ) , region_size) ,
208
206
( GuestAddress ( 0x1000 ) , region_size) ,
209
207
] ;
210
- let gmm = GuestMemoryMmap :: from_ranges ( & regions) . unwrap ( ) ;
208
+ let gmm = new_guest_memory_collection_from_regions ( & regions) . unwrap ( ) ;
211
209
let gm = GuestMemoryMmapAtomic :: new ( gmm) ;
212
210
let mem = {
213
211
let guard1 = gm. memory ( ) ;
@@ -219,38 +217,44 @@ mod tests {
219
217
#[ test]
220
218
fn test_atomic_hotplug ( ) {
221
219
let region_size = 0x1000 ;
222
- let regions = vec ! [
220
+ let regions = [
223
221
( GuestAddress ( 0x0 ) , region_size) ,
224
222
( GuestAddress ( 0x10_0000 ) , region_size) ,
225
223
] ;
226
- let mut gmm = Arc :: new ( GuestMemoryMmap :: from_ranges ( & regions) . unwrap ( ) ) ;
224
+ let mut gmm = Arc :: new ( new_guest_memory_collection_from_regions ( & regions) . unwrap ( ) ) ;
227
225
let gm: GuestMemoryAtomic < _ > = gmm. clone ( ) . into ( ) ;
228
226
let mem_orig = gm. memory ( ) ;
229
227
assert_eq ! ( mem_orig. num_regions( ) , 2 ) ;
230
228
231
229
{
232
230
let guard = gm. lock ( ) . unwrap ( ) ;
233
231
let new_gmm = Arc :: make_mut ( & mut gmm) ;
234
- let mmap = Arc :: new (
235
- GuestRegionMmap :: new ( MmapRegion :: new ( 0x1000 ) . unwrap ( ) , GuestAddress ( 0x8000 ) )
236
- . unwrap ( ) ,
237
- ) ;
238
- let new_gmm = new_gmm. insert_region ( mmap) . unwrap ( ) ;
239
- let mmap = Arc :: new (
240
- GuestRegionMmap :: new ( MmapRegion :: new ( 0x1000 ) . unwrap ( ) , GuestAddress ( 0x4000 ) )
241
- . unwrap ( ) ,
242
- ) ;
243
- let new_gmm = new_gmm. insert_region ( mmap) . unwrap ( ) ;
244
- let mmap = Arc :: new (
245
- GuestRegionMmap :: new ( MmapRegion :: new ( 0x1000 ) . unwrap ( ) , GuestAddress ( 0xc000 ) )
246
- . unwrap ( ) ,
247
- ) ;
248
- let new_gmm = new_gmm. insert_region ( mmap) . unwrap ( ) ;
249
- let mmap = Arc :: new (
250
- GuestRegionMmap :: new ( MmapRegion :: new ( 0x1000 ) . unwrap ( ) , GuestAddress ( 0xc000 ) )
251
- . unwrap ( ) ,
252
- ) ;
253
- new_gmm. insert_region ( mmap) . unwrap_err ( ) ;
232
+ let new_gmm = new_gmm
233
+ . insert_region ( Arc :: new ( MockRegion {
234
+ start : GuestAddress ( 0x8000 ) ,
235
+ len : 0x1000 ,
236
+ } ) )
237
+ . unwrap ( ) ;
238
+ let new_gmm = new_gmm
239
+ . insert_region ( Arc :: new ( MockRegion {
240
+ start : GuestAddress ( 0x4000 ) ,
241
+ len : 0x1000 ,
242
+ } ) )
243
+ . unwrap ( ) ;
244
+ let new_gmm = new_gmm
245
+ . insert_region ( Arc :: new ( MockRegion {
246
+ start : GuestAddress ( 0xc000 ) ,
247
+ len : 0x1000 ,
248
+ } ) )
249
+ . unwrap ( ) ;
250
+
251
+ new_gmm
252
+ . insert_region ( Arc :: new ( MockRegion {
253
+ start : GuestAddress ( 0x8000 ) ,
254
+ len : 0x1000 ,
255
+ } ) )
256
+ . unwrap_err ( ) ;
257
+
254
258
guard. replace ( new_gmm) ;
255
259
}
256
260
0 commit comments