332
359
diag("prefix3 error bitsize = %u, prefix_size = %u", bitsize,test_bit);
362
diag("prefix4 error bitsize = %u, i = %u", bitsize,i);
365
diag("prefix5 error bitsize = %u, i = %u", bitsize,i);
369
my_bool test_compare(MY_BITMAP *map, uint bitsize)
372
uint32 map2buf[MAX_TESTED_BITMAP_SIZE];
374
uint no_loops= bitsize > 128 ? 128 : bitsize;
375
if (bitmap_init(&map2, map2buf, bitsize, FALSE))
377
diag("init error for bitsize %d", bitsize);
380
/* Test all 4 possible combinations of set/unset bits. */
381
for (i=0; i < no_loops; i++)
383
test_bit=get_rand_bit(bitsize);
384
bitmap_clear_bit(map, test_bit);
385
bitmap_clear_bit(&map2, test_bit);
386
if (!bitmap_is_subset(map, &map2))
387
goto error_is_subset;
388
bitmap_set_bit(map, test_bit);
389
if (bitmap_is_subset(map, &map2))
390
goto error_is_subset;
391
bitmap_set_bit(&map2, test_bit);
392
if (!bitmap_is_subset(map, &map2))
393
goto error_is_subset;
394
bitmap_clear_bit(map, test_bit);
395
if (!bitmap_is_subset(map, &map2))
396
goto error_is_subset;
397
/* Note that test_bit is not cleared i map2. */
399
bitmap_clear_all(map);
400
bitmap_clear_all(&map2);
401
/* Test all 4 possible combinations of set/unset bits. */
402
for (i=0; i < no_loops; i++)
404
test_bit=get_rand_bit(bitsize);
405
if (bitmap_is_overlapping(map, &map2))
406
goto error_is_overlapping;
407
bitmap_set_bit(map, test_bit);
408
if (bitmap_is_overlapping(map, &map2))
409
goto error_is_overlapping;
410
bitmap_set_bit(&map2, test_bit);
411
if (!bitmap_is_overlapping(map, &map2))
412
goto error_is_overlapping;
413
bitmap_clear_bit(map, test_bit);
414
if (bitmap_is_overlapping(map, &map2))
415
goto error_is_overlapping;
416
bitmap_clear_bit(&map2, test_bit);
417
/* Note that test_bit is not cleared i map2. */
421
diag("is_subset error bitsize = %u", bitsize);
423
error_is_overlapping:
424
diag("is_overlapping error bitsize = %u", bitsize);
428
my_bool test_intersect(MY_BITMAP *map, uint bitsize)
430
uint bitsize2 = 1 + get_rand_bit(MAX_TESTED_BITMAP_SIZE - 1);
432
uint32 map2buf[bitsize2];
433
uint i, test_bit1, test_bit2, test_bit3;
434
if (bitmap_init(&map2, map2buf, bitsize2, FALSE))
436
diag("init error for bitsize %d", bitsize2);
439
test_bit1= get_rand_bit(bitsize);
440
test_bit2= get_rand_bit(bitsize);
441
bitmap_set_bit(map, test_bit1);
442
bitmap_set_bit(map, test_bit2);
443
test_bit3= get_rand_bit(bitsize2);
444
bitmap_set_bit(&map2, test_bit3);
445
if (test_bit2 < bitsize2)
446
bitmap_set_bit(&map2, test_bit2);
448
bitmap_intersect(map, &map2);
449
if (test_bit2 < bitsize2)
451
if (!bitmap_is_set(map, test_bit2))
453
bitmap_clear_bit(map, test_bit2);
455
if (test_bit1 == test_bit3)
457
if (!bitmap_is_set(map, test_bit1))
459
bitmap_clear_bit(map, test_bit1);
461
if (!bitmap_is_clear_all(map))
465
bitmap_set_all(&map2);
466
for (i=0; i < bitsize2; i++)
467
bitmap_clear_bit(&map2, i);
468
bitmap_intersect(map, &map2);
469
if (!bitmap_is_clear_all(map))
473
diag("intersect error bitsize = %u, bit1 = %u, bit2 = %u, bit3 = %u",
474
bitsize, test_bit1, test_bit2, test_bit3);
337
478
my_bool do_test(uint bitsize)
481
uint32 buf[MAX_TESTED_BITMAP_SIZE];
341
482
if (bitmap_init(&map, buf, bitsize, FALSE))
343
484
diag("init error for bitsize %d", bitsize);