[PATCH 02/12] unit: Add unit test for roundup_pow_of_two

Denis Kenzior <[email protected]> Mon, 22 Jul 2024 14:04:19 -0500
Newsgroups dev.linux.lists.ell
Message-ID <[email protected]>
---
 unit/test-util.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/unit/test-util.c b/unit/test-util.c
index b178b86cf489..341c790c3731 100644
--- a/unit/test-util.c
+++ b/unit/test-util.c
@@ -15,6 +15,7 @@
 #include <errno.h>
 
 #include <ell/ell.h>
+#include <ell/useful.h>
 
 static void test_hexstring(const void *test_data)
 {
@@ -270,6 +271,23 @@ static void test_clear_bits(const void *test_data)
 	assert(l_memeqzero(bitmap, sizeof(bitmap)));
 }
 
+static void test_roundup_pow_of_two(const void *test_data)
+{
+	assert(roundup_pow_of_two(2UL) == 2UL);
+	assert(roundup_pow_of_two(3UL) == 4UL);
+	assert(roundup_pow_of_two(5UL) == 8UL);
+	assert(roundup_pow_of_two(15UL) == 16UL);
+	assert(roundup_pow_of_two(25UL) == 32UL);
+	assert(roundup_pow_of_two(1025) == 2048UL);
+
+	if (sizeof(unsigned long) > 4) {
+		unsigned long l = UINT_MAX;
+
+		l += 1;
+		assert(roundup_pow_of_two(UINT_MAX) == l);
+	}
+}
+
 int main(int argc, char *argv[])
 {
 	l_test_init(&argc, &argv);
@@ -293,5 +311,7 @@ int main(int argc, char *argv[])
 	l_test_add("L_BITS_SET", test_set_bits, NULL);
 	l_test_add("L_BITS_CLEAR", test_clear_bits, NULL);
 
+	l_test_add("roundup_pow_of_two", test_roundup_pow_of_two, NULL);
+
 	return l_test_run();
 }
-- 
2.45.2