]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t/unit-tests: convert mem-pool test to use clar test framework
authorSeyi Kuforiji <kuforiji98@gmail.com>
Fri, 17 Jan 2025 12:29:24 +0000 (13:29 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 17 Jan 2025 22:35:11 +0000 (14:35 -0800)
Adapt the mem-pool test script to use clar framework by using clar
assertions where necessary.Test functions are created as a standalone to
test different test cases.

Mentored-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Seyi Kuforiji <kuforiji98@gmail.com>
Acked-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Makefile
t/meson.build
t/unit-tests/t-mem-pool.c [deleted file]
t/unit-tests/u-mem-pool.c [new file with mode: 0644]

index 97e8385b6643b963c54affb3ae621fc93fad28b5..49ada4169db1ca0680b669b198ca74f577511e53 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1338,6 +1338,7 @@ THIRD_PARTY_SOURCES += $(UNIT_TEST_DIR)/clar/%
 THIRD_PARTY_SOURCES += $(UNIT_TEST_DIR)/clar/clar/%
 
 CLAR_TEST_SUITES += u-ctype
+CLAR_TEST_SUITES += u-mem-pool
 CLAR_TEST_SUITES += u-strvec
 CLAR_TEST_PROG = $(UNIT_TEST_BIN)/unit-tests$(X)
 CLAR_TEST_OBJS = $(patsubst %,$(UNIT_TEST_DIR)/%.o,$(CLAR_TEST_SUITES))
@@ -1347,7 +1348,6 @@ CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/unit-test.o
 UNIT_TEST_PROGRAMS += t-example-decorate
 UNIT_TEST_PROGRAMS += t-hash
 UNIT_TEST_PROGRAMS += t-hashmap
-UNIT_TEST_PROGRAMS += t-mem-pool
 UNIT_TEST_PROGRAMS += t-oid-array
 UNIT_TEST_PROGRAMS += t-oidmap
 UNIT_TEST_PROGRAMS += t-oidtree
index 602ebfe6a260211eb2083e5808058852ca86e7a0..ffe951f9be4a1d1764623e6a8fee0156e3b2d249 100644 (file)
@@ -1,5 +1,6 @@
 clar_test_suites = [
   'unit-tests/u-ctype.c',
+  'unit-tests/u-mem-pool.c',
   'unit-tests/u-strvec.c',
 ]
 
@@ -43,7 +44,6 @@ unit_test_programs = [
   'unit-tests/t-example-decorate.c',
   'unit-tests/t-hash.c',
   'unit-tests/t-hashmap.c',
-  'unit-tests/t-mem-pool.c',
   'unit-tests/t-oid-array.c',
   'unit-tests/t-oidmap.c',
   'unit-tests/t-oidtree.c',
diff --git a/t/unit-tests/t-mem-pool.c b/t/unit-tests/t-mem-pool.c
deleted file mode 100644 (file)
index fe500c7..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#include "test-lib.h"
-#include "mem-pool.h"
-
-static void setup_static(void (*f)(struct mem_pool *), size_t block_alloc)
-{
-       struct mem_pool pool = { .block_alloc = block_alloc };
-       f(&pool);
-       mem_pool_discard(&pool, 0);
-}
-
-static void t_calloc_100(struct mem_pool *pool)
-{
-       size_t size = 100;
-       char *buffer = mem_pool_calloc(pool, 1, size);
-       for (size_t i = 0; i < size; i++)
-               check_int(buffer[i], ==, 0);
-       if (!check(pool->mp_block != NULL))
-               return;
-       check(pool->mp_block->next_free != NULL);
-       check(pool->mp_block->end != NULL);
-}
-
-int cmd_main(int argc UNUSED, const char **argv UNUSED)
-{
-       TEST(setup_static(t_calloc_100, 1024 * 1024),
-            "mem_pool_calloc returns 100 zeroed bytes with big block");
-       TEST(setup_static(t_calloc_100, 1),
-            "mem_pool_calloc returns 100 zeroed bytes with tiny block");
-
-       return test_done();
-}
diff --git a/t/unit-tests/u-mem-pool.c b/t/unit-tests/u-mem-pool.c
new file mode 100644 (file)
index 0000000..2bc2493
--- /dev/null
@@ -0,0 +1,25 @@
+#include "unit-test.h"
+#include "mem-pool.h"
+
+static void test_many_pool_allocations(size_t block_alloc)
+{
+       struct mem_pool pool = { .block_alloc = block_alloc };
+       size_t size = 100;
+       char *buffer = mem_pool_calloc(&pool, 1, size);
+       for (size_t i = 0; i < size; i++)
+               cl_assert_equal_i(0, buffer[i]);
+       cl_assert(pool.mp_block != NULL);
+       cl_assert(pool.mp_block->next_free != NULL);
+       cl_assert(pool.mp_block->end != NULL);
+       mem_pool_discard(&pool, 0);
+}
+
+void test_mem_pool__big_block(void)
+{
+       test_many_pool_allocations(1024 * 1024);
+}
+
+void test_mem_pool__tiny_block(void)
+{
+       test_many_pool_allocations(1);
+}