This patch supports backup memory mechanism test.

Signed-off-by: Chengwen Feng <fengcheng...@huawei.com>
---
 app/test/test_memarea.c | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/app/test/test_memarea.c b/app/test/test_memarea.c
index a07fb4424f..9609909d7c 100644
--- a/app/test/test_memarea.c
+++ b/app/test/test_memarea.c
@@ -291,6 +291,46 @@ test_memarea_dump(void)
        return 0;
 }
 
+static int
+test_memarea_backup(void)
+{
+       struct rte_memarea *ma, *bak_ma;
+       struct rte_memarea_param init;
+       void *ptr;
+
+       /* prepare env */
+       test_memarea_init_def_param(&init);
+       strcat(init.name, "_backup");
+       init.source = RTE_MEMAREA_SOURCE_SYSTEM_API;
+       init.total_sz = MEMAREA_TEST_DEFAULT_SIZE;
+       bak_ma = rte_memarea_create(&init);
+       RTE_TEST_ASSERT(bak_ma != NULL, "Expected Non-NULL");
+       test_memarea_init_def_param(&init);
+       init.source = RTE_MEMAREA_SOURCE_SYSTEM_API;
+       init.total_sz = MEMAREA_TEST_DEFAULT_SIZE >> 2;
+       init.bak_memarea = bak_ma;
+       ma = rte_memarea_create(&init);
+       RTE_TEST_ASSERT(ma != NULL, "Expected Non-NULL");
+
+       /* test for backup */
+       ptr = rte_memarea_alloc(ma, MEMAREA_TEST_DEFAULT_SIZE >> 3, 0);
+       RTE_TEST_ASSERT(ptr != NULL, "Expected Non-NULL");
+       ptr = rte_memarea_alloc(ma, MEMAREA_TEST_DEFAULT_SIZE >> 1, 0);
+       RTE_TEST_ASSERT(ptr != NULL, "Expected Non-NULL");
+       (void)rte_memarea_dump(ma, stderr, true);
+       (void)rte_memarea_dump(bak_ma, stderr, true);
+       rte_memarea_free(ma, ptr);
+       ptr = rte_memarea_alloc(ma, MEMAREA_TEST_DEFAULT_SIZE, 0);
+       RTE_TEST_ASSERT(ptr == NULL, "Expected NULL");
+       (void)rte_memarea_dump(ma, stderr, true);
+       (void)rte_memarea_dump(bak_ma, stderr, true);
+
+       rte_memarea_destroy(ma);
+       rte_memarea_destroy(bak_ma);
+
+       return 0;
+}
+
 static int
 test_memarea(void)
 {
@@ -300,6 +340,7 @@ test_memarea(void)
        MEMAREA_TEST_API_RUN(test_memarea_free_fail);
        MEMAREA_TEST_API_RUN(test_memarea_alloc_free);
        MEMAREA_TEST_API_RUN(test_memarea_dump);
+       MEMAREA_TEST_API_RUN(test_memarea_backup);
        return 0;
 }
 
-- 
2.17.1

Reply via email to