mempool_test: test rseq_mempool_percpu_malloc_init
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Sun, 10 Mar 2024 19:14:08 +0000 (15:14 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Sun, 10 Mar 2024 19:14:08 +0000 (15:14 -0400)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ia266d69a4007340ffe1d98950619ce90582c2e40

tests/mempool_test.c

index c753d581e2e47a20a31a000aaebc050cbd59d71b..7a8c79b5b8e92fa0fd8a0f2c3ff49129828ac760 100644 (file)
@@ -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");
 }
This page took 0.023951 seconds and 4 git commands to generate.