Message ID | 20190814002723.5140-1-richardw.yang@linux.intel.com |
---|---|
State | New |
Headers | show |
Series | test-bitmap: test set 1 bit case for bitmap_set | expand |
On 14/08/19 02:27, Wei Yang wrote: > 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> > > --- > Thanks for Paolo's finding. > > --- > tests/test-bitmap.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/tests/test-bitmap.c b/tests/test-bitmap.c > index 18aa584591..087e02a26c 100644 > --- a/tests/test-bitmap.c > +++ b/tests/test-bitmap.c > @@ -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); > Queued, thanks for writing the testcase without no one asking! :) Paolo
On Wed, Aug 14, 2019 at 02:38:24PM +0200, Paolo Bonzini wrote: >On 14/08/19 02:27, Wei Yang wrote: >> 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> >> >> --- >> Thanks for Paolo's finding. >> >> --- >> tests/test-bitmap.c | 12 ++++++++++++ >> 1 file changed, 12 insertions(+) >> >> diff --git a/tests/test-bitmap.c b/tests/test-bitmap.c >> index 18aa584591..087e02a26c 100644 >> --- a/tests/test-bitmap.c >> +++ b/tests/test-bitmap.c >> @@ -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); >> > >Queued, thanks for writing the testcase without no one asking! :) > My pleasure to help :) >Paolo
diff --git a/tests/test-bitmap.c b/tests/test-bitmap.c index 18aa584591..087e02a26c 100644 --- a/tests/test-bitmap.c +++ b/tests/test-bitmap.c @@ -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);
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> --- Thanks for Paolo's finding. --- tests/test-bitmap.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)