From e62b6d5494ffa3c177ff5ba4dbd0c2a5196bdd79 Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Sun, 10 Mar 2024 15:14:08 -0400 Subject: [PATCH] mempool_test: test rseq_mempool_percpu_malloc_init Signed-off-by: Mathieu Desnoyers Change-Id: Ia266d69a4007340ffe1d98950619ce90582c2e40 --- tests/mempool_test.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) 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"); } -- 2.34.1