New upstream version 16.11.7
[deb_dpdk.git] / app / test / test_mempool.c
index 46ad670..8fb13ce 100644 (file)
@@ -52,7 +52,6 @@
 #include <rte_lcore.h>
 #include <rte_atomic.h>
 #include <rte_branch_prediction.h>
-#include <rte_ring.h>
 #include <rte_mempool.h>
 #include <rte_spinlock.h>
 #include <rte_malloc.h>
@@ -357,17 +356,17 @@ test_mempool_sp_sc(void)
        }
        if (rte_mempool_lookup("test_mempool_sp_sc") != mp_spsc) {
                printf("Cannot lookup mempool from its name\n");
-               rte_mempool_free(mp_spsc);
-               RET_ERR();
+               ret = -1;
+               goto err;
        }
        lcore_next = rte_get_next_lcore(lcore_id, 0, 1);
        if (lcore_next >= RTE_MAX_LCORE) {
-               rte_mempool_free(mp_spsc);
-               RET_ERR();
+               ret = -1;
+               goto err;
        }
        if (rte_eal_lcore_role(lcore_next) != ROLE_RTE) {
-               rte_mempool_free(mp_spsc);
-               RET_ERR();
+               ret = -1;
+               goto err;
        }
        rte_spinlock_init(&scsp_spinlock);
        memset(scsp_obj_table, 0, sizeof(scsp_obj_table));
@@ -378,7 +377,10 @@ test_mempool_sp_sc(void)
 
        if (rte_eal_wait_lcore(lcore_next) < 0)
                ret = -1;
+
+err:
        rte_mempool_free(mp_spsc);
+       mp_spsc = NULL;
 
        return ret;
 }
@@ -501,12 +503,18 @@ test_mempool_xmem_misc(void)
        return 0;
 }
 
+static void
+walk_cb(struct rte_mempool *mp, void *userdata __rte_unused)
+{
+       printf("\t%s\n", mp->name);
+}
+
 static int
 test_mempool(void)
 {
+       int ret = -1;
        struct rte_mempool *mp_cache = NULL;
        struct rte_mempool *mp_nocache = NULL;
-       struct rte_mempool *mp_ext = NULL;
        struct rte_mempool *mp_stack = NULL;
 
        rte_atomic32_init(&synchro);
@@ -563,6 +571,9 @@ test_mempool(void)
                goto err;
        }
 
+       printf("Walk into mempools:\n");
+       rte_mempool_walk(walk_cb, NULL);
+
        rte_mempool_list_dump(stdout);
 
        /* basic tests without cache */
@@ -600,13 +611,13 @@ test_mempool(void)
 
        rte_mempool_list_dump(stdout);
 
-       return 0;
+       ret = 0;
 
 err:
        rte_mempool_free(mp_nocache);
        rte_mempool_free(mp_cache);
-       rte_mempool_free(mp_ext);
-       return -1;
+       rte_mempool_free(mp_stack);
+       return ret;
 }
 
 REGISTER_TEST_COMMAND(mempool_autotest, test_mempool);