1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
5 int main(int argc
, const char *argv
[]) {
6 _cleanup_bitmap_free_ Bitmap
*b
= NULL
, *b2
= NULL
;
7 unsigned n
= UINT_MAX
, i
= 0;
12 assert_se(bitmap_ensure_allocated(&b
) == 0);
15 assert_se(bitmap_ensure_allocated(&b
) == 0);
17 assert_se(bitmap_isset(b
, 0) == false);
18 assert_se(bitmap_isset(b
, 1) == false);
19 assert_se(bitmap_isset(b
, 256) == false);
20 assert_se(bitmap_isclear(b
) == true);
22 assert_se(bitmap_set(b
, 0) == 0);
23 assert_se(bitmap_isset(b
, 0) == true);
24 assert_se(bitmap_isclear(b
) == false);
26 assert_se(bitmap_isset(b
, 0) == false);
27 assert_se(bitmap_isclear(b
) == true);
29 assert_se(bitmap_set(b
, 1) == 0);
30 assert_se(bitmap_isset(b
, 1) == true);
31 assert_se(bitmap_isclear(b
) == false);
33 assert_se(bitmap_isset(b
, 1) == false);
34 assert_se(bitmap_isclear(b
) == true);
36 assert_se(bitmap_set(b
, 256) == 0);
37 assert_se(bitmap_isset(b
, 256) == true);
38 assert_se(bitmap_isclear(b
) == false);
40 assert_se(bitmap_isset(b
, 256) == false);
41 assert_se(bitmap_isclear(b
) == true);
43 assert_se(bitmap_set(b
, 32) == 0);
45 assert_se(bitmap_isset(b
, 32) == true);
48 BITMAP_FOREACH(n
, NULL
)
49 assert_not_reached("NULL bitmap");
51 assert_se(bitmap_set(b
, 0) == 0);
52 assert_se(bitmap_set(b
, 1) == 0);
53 assert_se(bitmap_set(b
, 256) == 0);
55 BITMAP_FOREACH(n
, b
) {
65 assert_se(i
== UINT_MAX
);
69 BITMAP_FOREACH(n
, b
) {
79 assert_se(i
== UINT_MAX
);
83 assert_se(bitmap_equal(b
, b2
) == true);
84 assert_se(bitmap_equal(b
, b
) == true);
85 assert_se(bitmap_equal(b
, NULL
) == false);
86 assert_se(bitmap_equal(NULL
, b
) == false);
87 assert_se(bitmap_equal(NULL
, NULL
) == true);
90 assert_se(bitmap_isclear(b
) == true);
91 assert_se(bitmap_equal(b
, b2
) == false);
95 assert_se(bitmap_set(b
, UINT_MAX
) == -ERANGE
);
99 assert_se(bitmap_ensure_allocated(&b
) == 0);
100 assert_se(bitmap_ensure_allocated(&b2
) == 0);
102 assert_se(bitmap_equal(b
, b2
));
103 assert_se(bitmap_set(b
, 0) == 0);
105 assert_se(bitmap_equal(b
, b2
));
107 assert_se(bitmap_set(b
, 1) == 0);
109 assert_se(bitmap_equal(b
, b2
));
111 assert_se(bitmap_set(b
, 0) == 0);
112 assert_se(bitmap_set(b2
, 0) == 0);
113 assert_se(bitmap_equal(b
, b2
));