diff options
Diffstat (limited to 'lib/test_bitmap.c')
-rw-r--r-- | lib/test_bitmap.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/test_bitmap.c b/lib/test_bitmap.c index de7ef2996a07..9734af711816 100644 --- a/lib/test_bitmap.c +++ b/lib/test_bitmap.c | |||
@@ -105,6 +105,35 @@ __check_eq_u32_array(const char *srcfile, unsigned int line, | |||
105 | #define expect_eq_pbl(...) __expect_eq(pbl, ##__VA_ARGS__) | 105 | #define expect_eq_pbl(...) __expect_eq(pbl, ##__VA_ARGS__) |
106 | #define expect_eq_u32_array(...) __expect_eq(u32_array, ##__VA_ARGS__) | 106 | #define expect_eq_u32_array(...) __expect_eq(u32_array, ##__VA_ARGS__) |
107 | 107 | ||
108 | static void __init test_zero_clear(void) | ||
109 | { | ||
110 | DECLARE_BITMAP(bmap, 1024); | ||
111 | |||
112 | /* Known way to set all bits */ | ||
113 | memset(bmap, 0xff, 128); | ||
114 | |||
115 | expect_eq_pbl("0-22", bmap, 23); | ||
116 | expect_eq_pbl("0-1023", bmap, 1024); | ||
117 | |||
118 | /* single-word bitmaps */ | ||
119 | bitmap_clear(bmap, 0, 9); | ||
120 | expect_eq_pbl("9-1023", bmap, 1024); | ||
121 | |||
122 | bitmap_zero(bmap, 35); | ||
123 | expect_eq_pbl("64-1023", bmap, 1024); | ||
124 | |||
125 | /* cross boundaries operations */ | ||
126 | bitmap_clear(bmap, 79, 19); | ||
127 | expect_eq_pbl("64-78,98-1023", bmap, 1024); | ||
128 | |||
129 | bitmap_zero(bmap, 115); | ||
130 | expect_eq_pbl("128-1023", bmap, 1024); | ||
131 | |||
132 | /* Zeroing entire area */ | ||
133 | bitmap_zero(bmap, 1024); | ||
134 | expect_eq_pbl("", bmap, 1024); | ||
135 | } | ||
136 | |||
108 | static void __init test_zero_fill_copy(void) | 137 | static void __init test_zero_fill_copy(void) |
109 | { | 138 | { |
110 | DECLARE_BITMAP(bmap1, 1024); | 139 | DECLARE_BITMAP(bmap1, 1024); |
@@ -309,6 +338,7 @@ static void noinline __init test_mem_optimisations(void) | |||
309 | 338 | ||
310 | static int __init test_bitmap_init(void) | 339 | static int __init test_bitmap_init(void) |
311 | { | 340 | { |
341 | test_zero_clear(); | ||
312 | test_zero_fill_copy(); | 342 | test_zero_fill_copy(); |
313 | test_bitmap_arr32(); | 343 | test_bitmap_arr32(); |
314 | test_bitmap_parselist(); | 344 | test_bitmap_parselist(); |