1 /* SPDX-License-Identifier: LGPL-2.1+ */
5 int main(int argc
, const char *argv
[]) {
6 _cleanup_bitmap_free_ Bitmap
*b
= NULL
, *b2
= NULL
;
8 unsigned n
= (unsigned) -1, i
= 0;
13 assert_se(bitmap_ensure_allocated(&b
) == 0);
16 assert_se(bitmap_ensure_allocated(&b
) == 0);
18 assert_se(bitmap_isset(b
, 0) == false);
19 assert_se(bitmap_isset(b
, 1) == false);
20 assert_se(bitmap_isset(b
, 256) == false);
21 assert_se(bitmap_isclear(b
) == true);
23 assert_se(bitmap_set(b
, 0) == 0);
24 assert_se(bitmap_isset(b
, 0) == true);
25 assert_se(bitmap_isclear(b
) == false);
27 assert_se(bitmap_isset(b
, 0) == false);
28 assert_se(bitmap_isclear(b
) == true);
30 assert_se(bitmap_set(b
, 1) == 0);
31 assert_se(bitmap_isset(b
, 1) == true);
32 assert_se(bitmap_isclear(b
) == false);
34 assert_se(bitmap_isset(b
, 1) == false);
35 assert_se(bitmap_isclear(b
) == true);
37 assert_se(bitmap_set(b
, 256) == 0);
38 assert_se(bitmap_isset(b
, 256) == true);
39 assert_se(bitmap_isclear(b
) == false);
41 assert_se(bitmap_isset(b
, 256) == false);
42 assert_se(bitmap_isclear(b
) == true);
44 assert_se(bitmap_set(b
, 32) == 0);
46 assert_se(bitmap_isset(b
, 32) == true);
49 BITMAP_FOREACH(n
, NULL
, it
)
50 assert_not_reached("NULL bitmap");
52 assert_se(bitmap_set(b
, 0) == 0);
53 assert_se(bitmap_set(b
, 1) == 0);
54 assert_se(bitmap_set(b
, 256) == 0);
56 BITMAP_FOREACH(n
, b
, it
) {
66 assert_se(i
== (unsigned) -1);
70 BITMAP_FOREACH(n
, b
, it
) {
80 assert_se(i
== (unsigned) -1);
84 assert_se(bitmap_equal(b
, b2
) == true);
85 assert_se(bitmap_equal(b
, b
) == true);
86 assert_se(bitmap_equal(b
, NULL
) == false);
87 assert_se(bitmap_equal(NULL
, b
) == false);
88 assert_se(bitmap_equal(NULL
, NULL
) == true);
91 assert_se(bitmap_isclear(b
) == true);
92 assert_se(bitmap_equal(b
, b2
) == false);
96 assert_se(bitmap_set(b
, (unsigned) -1) == -ERANGE
);
100 assert_se(bitmap_ensure_allocated(&b
) == 0);
101 assert_se(bitmap_ensure_allocated(&b2
) == 0);
103 assert_se(bitmap_equal(b
, b2
));
104 assert_se(bitmap_set(b
, 0) == 0);
106 assert_se(bitmap_equal(b
, b2
));
108 assert_se(bitmap_set(b
, 1) == 0);
110 assert_se(bitmap_equal(b
, b2
));
112 assert_se(bitmap_set(b
, 0) == 0);
113 assert_se(bitmap_set(b2
, 0) == 0);
114 assert_se(bitmap_equal(b
, b2
));