Add selftests for bitmap_set_range.

2017-10-16  Martin Liska  <mliska@suse.cz>

	* sbitmap.c (bitmap_bit_in_range_p_checking): New function.
	(test_set_range): Likewise.
	(test_range_functions): Rename to ...
	(test_bit_in_range): ... this.
	(sbitmap_c_tests): Add new test.

From-SVN: r253785
This commit is contained in:
Martin Liska 2017-10-16 13:59:39 +02:00 committed by Martin Liska
parent 1274f08639
commit a0df14998e
2 changed files with 65 additions and 3 deletions

View File

@ -1,3 +1,11 @@
2017-10-16 Martin Liska <mliska@suse.cz>
* sbitmap.c (bitmap_bit_in_range_p_checking): New function.
(test_set_range): Likewise.
(test_range_functions): Rename to ...
(test_bit_in_range): ... this.
(sbitmap_c_tests): Add new test.
2017-10-16 Tamar Christina <tamar.christina@arm.com>
* config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): New.

View File

@ -823,11 +823,64 @@ namespace selftest {
/* Selftests for sbitmaps. */
/* Checking function that uses both bitmap_bit_in_range_p and
loop of bitmap_bit_p and verifies consistent results. */
/* Verify range functions for sbitmap. */
static bool
bitmap_bit_in_range_p_checking (sbitmap s, unsigned int start,
unsigned end)
{
bool r1 = bitmap_bit_in_range_p (s, start, end);
bool r2 = false;
for (unsigned int i = start; i <= end; i++)
if (bitmap_bit_p (s, i))
{
r2 = true;
break;
}
ASSERT_EQ (r1, r2);
return r1;
}
/* Verify bitmap_set_range functions for sbitmap. */
static void
test_range_functions ()
test_set_range ()
{
sbitmap s = sbitmap_alloc (16);
bitmap_clear (s);
bitmap_set_range (s, 0, 1);
ASSERT_TRUE (bitmap_bit_in_range_p_checking (s, 0, 0));
ASSERT_FALSE (bitmap_bit_in_range_p_checking (s, 1, 15));
bitmap_set_range (s, 15, 1);
ASSERT_FALSE (bitmap_bit_in_range_p_checking (s, 1, 14));
ASSERT_TRUE (bitmap_bit_in_range_p_checking (s, 15, 15));
s = sbitmap_alloc (1024);
bitmap_clear (s);
bitmap_set_range (s, 512, 1);
ASSERT_FALSE (bitmap_bit_in_range_p_checking (s, 0, 511));
ASSERT_FALSE (bitmap_bit_in_range_p_checking (s, 513, 1023));
ASSERT_TRUE (bitmap_bit_in_range_p_checking (s, 512, 512));
ASSERT_TRUE (bitmap_bit_in_range_p_checking (s, 508, 512));
ASSERT_TRUE (bitmap_bit_in_range_p_checking (s, 508, 513));
ASSERT_FALSE (bitmap_bit_in_range_p_checking (s, 508, 511));
bitmap_clear (s);
bitmap_set_range (s, 512, 64);
ASSERT_FALSE (bitmap_bit_in_range_p_checking (s, 0, 511));
ASSERT_FALSE (bitmap_bit_in_range_p_checking (s, 512 + 64, 1023));
ASSERT_TRUE (bitmap_bit_in_range_p_checking (s, 512, 512));
ASSERT_TRUE (bitmap_bit_in_range_p_checking (s, 512 + 63, 512 + 63));
}
/* Verify bitmap_bit_in_range_p functions for sbitmap. */
static void
test_bit_in_range ()
{
sbitmap s = sbitmap_alloc (1024);
bitmap_clear (s);
@ -900,7 +953,8 @@ test_range_functions ()
void
sbitmap_c_tests ()
{
test_range_functions ();
test_set_range ();
test_bit_in_range ();
}
} // namespace selftest