test: clean up memory for function reentrancy test
Function reentrancy test limits maximum number of iterations based on the number of memzones and cores, however it doesn't free the memzones after the fact, so on a machine with big amount of cores the tests will fail due to running out of memzones. Fix this by introducing cleanup functions for ring and mempool reentrancy tests. Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com> Acked-by: Olivier Matz <olivier.matz@6wind.com>
This commit is contained in:
parent
ac7f4af813
commit
995eec6190
@ -81,6 +81,22 @@ test_eal_init_once(__attribute__((unused)) void *arg)
|
||||
/*
|
||||
* ring create/lookup reentrancy test
|
||||
*/
|
||||
static void
|
||||
ring_clean(unsigned int lcore_id)
|
||||
{
|
||||
struct rte_ring *rp;
|
||||
char ring_name[MAX_STRING_SIZE];
|
||||
int i;
|
||||
|
||||
for (i = 0; i < MAX_ITER_TIMES; i++) {
|
||||
snprintf(ring_name, sizeof(ring_name),
|
||||
"fr_test_%d_%d", lcore_id, i);
|
||||
rp = rte_ring_lookup(ring_name);
|
||||
if (rp != NULL)
|
||||
rte_ring_free(rp);
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
ring_create_lookup(__attribute__((unused)) void *arg)
|
||||
{
|
||||
@ -127,6 +143,23 @@ my_obj_init(struct rte_mempool *mp, __attribute__((unused)) void *arg,
|
||||
*objnum = i;
|
||||
}
|
||||
|
||||
static void
|
||||
mempool_clean(unsigned int lcore_id)
|
||||
{
|
||||
struct rte_mempool *mp;
|
||||
char mempool_name[MAX_STRING_SIZE];
|
||||
int i;
|
||||
|
||||
/* verify all ring created successful */
|
||||
for (i = 0; i < MAX_ITER_TIMES; i++) {
|
||||
snprintf(mempool_name, sizeof(mempool_name), "fr_test_%d_%d",
|
||||
lcore_id, i);
|
||||
mp = rte_mempool_lookup(mempool_name);
|
||||
if (mp != NULL)
|
||||
rte_mempool_free(mp);
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
mempool_create_lookup(__attribute__((unused)) void *arg)
|
||||
{
|
||||
@ -312,7 +345,7 @@ fbk_create_free(__attribute__((unused)) void *arg)
|
||||
|
||||
#ifdef RTE_LIBRTE_LPM
|
||||
static void
|
||||
lpm_clean(unsigned lcore_id)
|
||||
lpm_clean(unsigned int lcore_id)
|
||||
{
|
||||
char lpm_name[MAX_STRING_SIZE];
|
||||
struct rte_lpm *lpm;
|
||||
@ -383,8 +416,9 @@ struct test_case{
|
||||
/* All test cases in the test suite */
|
||||
struct test_case test_cases[] = {
|
||||
{ test_eal_init_once, NULL, NULL, "eal init once" },
|
||||
{ ring_create_lookup, NULL, NULL, "ring create/lookup" },
|
||||
{ mempool_create_lookup, NULL, NULL, "mempool create/lookup" },
|
||||
{ ring_create_lookup, NULL, ring_clean, "ring create/lookup" },
|
||||
{ mempool_create_lookup, NULL, mempool_clean,
|
||||
"mempool create/lookup" },
|
||||
#ifdef RTE_LIBRTE_HASH
|
||||
{ hash_create_free, NULL, hash_clean, "hash create/free" },
|
||||
{ fbk_create_free, NULL, fbk_clean, "fbk create/free" },
|
||||
|
Loading…
Reference in New Issue
Block a user