1 #include <ccan/bitmap/bitmap.h>
2 #include <ccan/tap/tap.h>
3 #include <ccan/array_size/array_size.h>
6 1, 2, 3, 4, 5, 6, 7, 8,
11 #define NSIZES ARRAY_SIZE(bitmap_sizes)
14 static void test_sizes(int nbits)
16 bitmap *bitmap = bitmap_alloc(nbits);
22 bitmap_zero(bitmap, nbits);
24 for (i = 0; i < nbits; i++) {
25 wrong = wrong || bitmap_test_bit(bitmap, i);
29 bitmap_fill(bitmap, nbits);
31 for (i = 0; i < nbits; i++) {
32 wrong = wrong || !bitmap_test_bit(bitmap, i);
37 for (i = 0; i < nbits; i++) {
38 bitmap_zero(bitmap, nbits);
39 bitmap_set_bit(bitmap, i);
40 for (j = 0; j < nbits; j++) {
43 wrong = wrong || (bitmap_test_bit(bitmap, j) != val);
49 for (i = 0; i < nbits; i++) {
50 bitmap_fill(bitmap, nbits);
51 bitmap_clear_bit(bitmap, i);
52 for (j = 0; j < nbits; j++) {
55 wrong = wrong || (bitmap_test_bit(bitmap, j) != val);
60 bitmap_zero(bitmap, nbits);
61 ok1(bitmap_empty(bitmap, nbits));
64 for (i = 0; i < nbits; i++) {
65 bitmap_zero(bitmap, nbits);
66 bitmap_set_bit(bitmap, i);
67 wrong = wrong || bitmap_empty(bitmap, nbits);
71 bitmap_fill(bitmap, nbits);
72 ok1(bitmap_full(bitmap, nbits));
75 for (i = 0; i < nbits; i++) {
76 bitmap_fill(bitmap, nbits);
77 bitmap_clear_bit(bitmap, i);
78 wrong = wrong || bitmap_full(bitmap, nbits);
89 /* This is how many tests you plan to run */
90 plan_tests(NSIZES * NTESTS);
92 for (i = 0; i < NSIZES; i++) {
93 diag("Testing %d-bit bitmap", bitmap_sizes[i]);
94 test_sizes(bitmap_sizes[i]);
97 /* This exits depending on whether all tests passed */