From cdf6f5ae0465a8fb25d2afc758911985cc542a07 Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Fri, 17 Jul 2015 18:30:41 +0200 Subject: basic: bitmap - complete fix for bitshift overflow The bug found by David existed in several places, fix them all. Also extend the tests to cover these cases. --- src/test/test-bitmap.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/test') diff --git a/src/test/test-bitmap.c b/src/test/test-bitmap.c index 77db784a94..96deeded7e 100644 --- a/src/test/test-bitmap.c +++ b/src/test/test-bitmap.c @@ -58,6 +58,14 @@ int main(int argc, const char *argv[]) { assert_se(bitmap_isset(b, 256) == false); assert_se(bitmap_isclear(b) == true); + assert_se(bitmap_set(b, 32) == 0); + bitmap_unset(b, 0); + assert_se(bitmap_isset(b, 32) == true); + bitmap_unset(b, 32); + + BITMAP_FOREACH(n, NULL, it) + assert_not_reached("NULL bitmap"); + assert_se(bitmap_set(b, 0) == 0); assert_se(bitmap_set(b, 1) == 0); assert_se(bitmap_set(b, 256) == 0); -- cgit v1.2.3-54-g00ecf