git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/4] t/unit-tests: convert mem-pool test to use clar test framework

From
Seyi Kuforiji <kuforiji98@gmail.com>
Date
Jan 16, 2025, 10:49 UTC
Message-ID
<20250116104911.77405-3-kuforiji98@gmail.com>
In-Reply-To
<20250116104911.77405-1-kuforiji98@gmail.com>

Adapt the mem-pool test script to use clar framework by using clar assertions where necessary. Following the consensus to convert the unit-tests scripts found in the t/unit-tests folder to clar driven by Patrick Steinhardt. 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>
---
 Makefile                  |  2 +-
 t/meson.build             |  2 +-
 t/unit-tests/t-mem-pool.c | 31 -------------------------------
 t/unit-tests/u-mem-pool.c | 26 ++++++++++++++++++++++++++
 4 files changed, 28 insertions(+), 33 deletions(-)
 delete mode 100644 t/unit-tests/t-mem-pool.c
 create mode 100644 t/unit-tests/u-mem-pool.c
diff --git a/Makefile b/Makefile
index 97e8385b66..49ada4169d 100644
--- 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
diff --git a/t/meson.build b/t/meson.build
index 602ebfe6a2..ffe951f9be 100644
--- a/t/meson.build
+++ b/t/meson.build
@@ -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
index fe500c704b..0000000000
--- a/t/unit-tests/t-mem-pool.c
+++ /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
index 0000000000..36e31a3201
--- /dev/null
+++ b/t/unit-tests/u-mem-pool.c
@@ -0,0 +1,26 @@
+#include "unit-test.h"
+#include "mem-pool.h"
+
+static void t_calloc_100(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)
+{
+	t_calloc_100(1024 * 1024);
+
+}
+
+void test_mem_pool__tiny_block(void)
+{
+	t_calloc_100(1);
+}
-- 
2.34.1
Previous: Patrick SteinhardtNext: Patrick Steinhardt
Message 4 of 24 in “t/unit-tests: convert unit-tests to use clar”
  1. 0/4 t/unit-tests: convert unit-tests to use clarSeyi Kuforiji, Jan 16, 2025
  2. 1/4 t/unit-tests: handle dashes in test suite filenamesSeyi Kuforiji, Jan 16, 2025
  3. Patrick SteinhardtJan 16, 2025
  4. 2/4 t/unit-tests: convert mem-pool test to use clar test frameworkSeyi Kuforiji, Jan 16, 2025
  5. Patrick SteinhardtJan 16, 2025
  6. Junio C HamanoJan 16, 2025
  7. 3/4 t/unit-tests: adapt priority queue test to use clar test frameworkSeyi Kuforiji, Jan 16, 2025
  8. Patrick SteinhardtJan 16, 2025
  9. 4/4 t/unit-tests: convert reftable tree test to use clar test frameworkSeyi Kuforiji, Jan 16, 2025
  10. 0/4 t/unit-tests: convert unit-tests to use clarSeyi Kuforiji, Jan 16, 2025
  11. 1/4 t/unit-tests: handle dashes in test suite filenamesSeyi Kuforiji, Jan 16, 2025
  12. Patrick SteinhardtJan 17, 2025
  13. 2/4 t/unit-tests: convert mem-pool test to use clar test frameworkSeyi Kuforiji, Jan 16, 2025
  14. 3/4 t/unit-tests: adapt priority queue test to use clar test frameworkSeyi Kuforiji, Jan 16, 2025
  15. 4/4 t/unit-tests: convert reftable tree test to use clar test frameworkSeyi Kuforiji, Jan 16, 2025
  16. Patrick SteinhardtJan 17, 2025
  17. t/unit-tests: convert unit-tests to use clarSeyi Kuforiji, Jan 17, 2025
  18. 1/4 t/unit-tests: handle dashes in test suite filenamesSeyi Kuforiji, Jan 17, 2025
  19. 2/4 t/unit-tests: convert mem-pool test to use clar test frameworkSeyi Kuforiji, Jan 17, 2025
  20. Karthik NayakJan 20, 2025
  21. 3/4 t/unit-tests: adapt priority queue test to use clar test frameworkSeyi Kuforiji, Jan 17, 2025
  22. Karthik NayakJan 20, 2025
  23. 4/4 t/unit-tests: convert reftable tree test to use clar test frameworkSeyi Kuforiji, Jan 17, 2025
  24. Patrick SteinhardtJan 17, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.