Skip to content

Commit

Permalink
test-bitmap: test set 1 bit case for bitmap_set
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Wei Yang authored and bonzini committed Aug 20, 2019
1 parent 355477f commit a060297
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions tests/test-bitmap.c
Expand Up @@ -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);
Expand Down

0 comments on commit a060297

Please sign in to comment.