test-bitmap: test set 1 bit case for bitmap_set
diff mbox series

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
Related show

Commit Message

Wei Yang Aug. 14, 2019, 12:27 a.m. UTC
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(+)

Comments

Paolo Bonzini Aug. 14, 2019, 12:38 p.m. UTC | #1
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
Wei Yang Aug. 14, 2019, 4:01 p.m. UTC | #2
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

Patch
diff mbox series

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);