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);
|
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] */
|
/* Both Aligned, set bits [BITS_PER_LONG, 3*BITS_PER_LONG] */
|
||||||
set_func(bmap, BITS_PER_LONG, 2 * BITS_PER_LONG);
|
set_func(bmap, BITS_PER_LONG, 2 * BITS_PER_LONG);
|
||||||
g_assert_cmpuint(bmap[1], ==, -1ul);
|
g_assert_cmpuint(bmap[1], ==, -1ul);
|
||||||
|
|
Loading…
Reference in a new issue