1 /* SPDX-License-Identifier: LGPL-2.1+ */
3 Copyright © 2015 Tom Gundersen
8 int main(int argc
, const char *argv
[]) {
9 _cleanup_bitmap_free_ Bitmap
*b
= NULL
, *b2
= NULL
;
11 unsigned n
= (unsigned) -1, i
= 0;
16 assert_se(bitmap_ensure_allocated(&b
) == 0);
19 assert_se(bitmap_ensure_allocated(&b
) == 0);
21 assert_se(bitmap_isset(b
, 0) == false);
22 assert_se(bitmap_isset(b
, 1) == false);
23 assert_se(bitmap_isset(b
, 256) == false);
24 assert_se(bitmap_isclear(b
) == true);
26 assert_se(bitmap_set(b
, 0) == 0);
27 assert_se(bitmap_isset(b
, 0) == true);
28 assert_se(bitmap_isclear(b
) == false);
30 assert_se(bitmap_isset(b
, 0) == false);
31 assert_se(bitmap_isclear(b
) == true);
33 assert_se(bitmap_set(b
, 1) == 0);
34 assert_se(bitmap_isset(b
, 1) == true);
35 assert_se(bitmap_isclear(b
) == false);
37 assert_se(bitmap_isset(b
, 1) == false);
38 assert_se(bitmap_isclear(b
) == true);
40 assert_se(bitmap_set(b
, 256) == 0);
41 assert_se(bitmap_isset(b
, 256) == true);
42 assert_se(bitmap_isclear(b
) == false);
44 assert_se(bitmap_isset(b
, 256) == false);
45 assert_se(bitmap_isclear(b
) == true);
47 assert_se(bitmap_set(b
, 32) == 0);
49 assert_se(bitmap_isset(b
, 32) == true);
52 BITMAP_FOREACH(n
, NULL
, it
)
53 assert_not_reached("NULL bitmap");
55 assert_se(bitmap_set(b
, 0) == 0);
56 assert_se(bitmap_set(b
, 1) == 0);
57 assert_se(bitmap_set(b
, 256) == 0);
59 BITMAP_FOREACH(n
, b
, it
) {
69 assert_se(i
== (unsigned) -1);
73 BITMAP_FOREACH(n
, b
, it
) {
83 assert_se(i
== (unsigned) -1);
87 assert_se(bitmap_equal(b
, b2
) == true);
88 assert_se(bitmap_equal(b
, b
) == true);
89 assert_se(bitmap_equal(b
, NULL
) == false);
90 assert_se(bitmap_equal(NULL
, b
) == false);
91 assert_se(bitmap_equal(NULL
, NULL
) == true);
94 assert_se(bitmap_isclear(b
) == true);
95 assert_se(bitmap_equal(b
, b2
) == false);
99 assert_se(bitmap_set(b
, (unsigned) -1) == -ERANGE
);
103 assert_se(bitmap_ensure_allocated(&b
) == 0);
104 assert_se(bitmap_ensure_allocated(&b2
) == 0);
106 assert_se(bitmap_equal(b
, b2
));
107 assert_se(bitmap_set(b
, 0) == 0);
109 assert_se(bitmap_equal(b
, b2
));
111 assert_se(bitmap_set(b
, 1) == 0);
113 assert_se(bitmap_equal(b
, b2
));
115 assert_se(bitmap_set(b
, 0) == 0);
116 assert_se(bitmap_set(b2
, 0) == 0);
117 assert_se(bitmap_equal(b
, b2
));