aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>2024-03-10 15:14:08 -0400
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>2024-03-10 15:14:08 -0400
commite62b6d5494ffa3c177ff5ba4dbd0c2a5196bdd79 (patch)
treea0b4fac4fec89d4b465b9c630721c7e441fe59d1
parent6ff43d9ad593cc7595b4dcab098cde844e96a992 (diff)
downloadlibrseq-e62b6d5494ffa3c177ff5ba4dbd0c2a5196bdd79.tar.gz
mempool_test: test rseq_mempool_percpu_malloc_init
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Change-Id: Ia266d69a4007340ffe1d98950619ce90582c2e40
-rw-r--r--tests/mempool_test.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/mempool_test.c b/tests/mempool_test.c
index c753d58..7a8c79b 100644
--- a/tests/mempool_test.c
+++ b/tests/mempool_test.c
@@ -45,6 +45,14 @@ static void test_mempool_fill(unsigned long max_nr_ranges, size_t stride)
uint64_t count = 0;
LIST_HEAD(list);
int ret, i, size_order;
+ struct test_data init_value = {
+ .value = {
+ 123,
+ 456,
+ },
+ .backref = NULL,
+ .node = {},
+ };
attr = rseq_mempool_attr_create();
ok(attr, "Create pool attribute");
@@ -108,6 +116,18 @@ static void test_mempool_fill(unsigned long max_nr_ranges, size_t stride)
rseq_mempool_percpu_free(ptr, stride);
ok(1, "Free one object");
+ ptr = (struct test_data __rseq_percpu *)
+ rseq_mempool_percpu_malloc_init(mempool,
+ &init_value, sizeof(struct test_data));
+ if (!ptr)
+ abort();
+ ok(1, "Allocate one initialized object");
+
+ ok(ptr->value[0] == 123 && ptr->value[1] == 456, "Validate initial values");
+
+ rseq_mempool_percpu_free(ptr, stride);
+ ok(1, "Free one object");
+
ret = rseq_mempool_destroy(mempool);
ok(ret == 0, "Destroy mempool");
}