mirror of https://gitee.com/openkylin/qemu.git
test-bitmap: test set 1 bit case for bitmap_set
All current bitmap_set test cases set range across word, while the handle of a range within one word is different from that. Add case to set 1 bit as a represent for set range within one word. Signed-off-by: Wei Yang <richardw.yang@linux.intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
355477f8c7
commit
a060297822
|
@ -67,6 +67,18 @@ static void bitmap_set_case(bmap_set_func set_func)
|
|||
|
||||
bmap = bitmap_new(BMAP_SIZE);
|
||||
|
||||
/* Set one bit at offset in second word */
|
||||
for (offset = 0; offset <= BITS_PER_LONG; offset++) {
|
||||
bitmap_clear(bmap, 0, BMAP_SIZE);
|
||||
set_func(bmap, BITS_PER_LONG + offset, 1);
|
||||
g_assert_cmpint(find_first_bit(bmap, 2 * BITS_PER_LONG),
|
||||
==, BITS_PER_LONG + offset);
|
||||
g_assert_cmpint(find_next_zero_bit(bmap,
|
||||
3 * BITS_PER_LONG,
|
||||
BITS_PER_LONG + offset),
|
||||
==, BITS_PER_LONG + offset + 1);
|
||||
}
|
||||
|
||||
/* Both Aligned, set bits [BITS_PER_LONG, 3*BITS_PER_LONG] */
|
||||
set_func(bmap, BITS_PER_LONG, 2 * BITS_PER_LONG);
|
||||
g_assert_cmpuint(bmap[1], ==, -1ul);
|
||||
|
|
Loading…
Reference in New Issue