Skip to content

Commit 29e165e

Browse files
russell-islamroypat
authored andcommitted
atomic_bitmap: add test case to validate enlarge function
Add one test case to validate the enlarge function of the AtomicBitmap struct. Signed-off-by: Muminul Islam <[email protected]>
1 parent d196d39 commit 29e165e

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

src/bitmap/backend/atomic_bitmap.rs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,4 +295,44 @@ mod tests {
295295
let b = AtomicBitmap::new(0x800, DEFAULT_PAGE_SIZE);
296296
test_bitmap(&b);
297297
}
298+
299+
#[test]
300+
fn test_bitmap_enlarge() {
301+
let mut b = AtomicBitmap::new(8 * 1024, DEFAULT_PAGE_SIZE);
302+
assert_eq!(b.len(), 64);
303+
b.set_addr_range(128, 129);
304+
assert!(!b.is_addr_set(0));
305+
assert!(b.is_addr_set(128));
306+
assert!(b.is_addr_set(256));
307+
assert!(!b.is_addr_set(384));
308+
309+
b.reset_addr_range(128, 129);
310+
assert!(!b.is_addr_set(0));
311+
assert!(!b.is_addr_set(128));
312+
assert!(!b.is_addr_set(256));
313+
assert!(!b.is_addr_set(384));
314+
b.set_addr_range(128, 129);
315+
b.enlarge(8 * 1024);
316+
for i in 65..128 {
317+
assert!(!b.is_bit_set(i));
318+
}
319+
assert_eq!(b.len(), 128);
320+
assert!(!b.is_addr_set(0));
321+
assert!(b.is_addr_set(128));
322+
assert!(b.is_addr_set(256));
323+
assert!(!b.is_addr_set(384));
324+
325+
b.set_bit(55);
326+
assert!(b.is_bit_set(55));
327+
for i in 65..128 {
328+
b.set_bit(i);
329+
}
330+
for i in 65..128 {
331+
assert!(b.is_bit_set(i));
332+
}
333+
b.reset_addr_range(0, 16 * 1024);
334+
for i in 0..128 {
335+
assert!(!b.is_bit_set(i));
336+
}
337+
}
298338
}

0 commit comments

Comments
 (0)