X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest%2Ftest_stack.c;h=c8dac1f55cdce8ae31e6b6dce0cabebcbfd69904;hb=48083b4d67c08f97c613b0df09d8945375aa7661;hp=6be2f876b2e70eb7f7fcbed2a61cdb27a5431b98;hpb=5e2e61b99e916bd079314d1ce061009b7b5daf25;p=dpdk.git diff --git a/app/test/test_stack.c b/app/test/test_stack.c index 6be2f876b2..c8dac1f55c 100644 --- a/app/test/test_stack.c +++ b/app/test/test_stack.c @@ -98,7 +98,7 @@ test_stack_push_pop(struct rte_stack *s, void **obj_table, unsigned int bulk_sz) } static int -test_stack_basic(void) +test_stack_basic(uint32_t flags) { struct rte_stack *s = NULL; void **obj_table = NULL; @@ -114,7 +114,7 @@ test_stack_basic(void) for (i = 0; i < STACK_SIZE; i++) obj_table[i] = (void *)(uintptr_t)i; - s = rte_stack_create(__func__, STACK_SIZE, rte_socket_id(), 0); + s = rte_stack_create(__func__, STACK_SIZE, rte_socket_id(), flags); if (s == NULL) { printf("[%s():%u] failed to create a stack\n", __func__, __LINE__); @@ -178,18 +178,18 @@ fail_test: } static int -test_stack_name_reuse(void) +test_stack_name_reuse(uint32_t flags) { struct rte_stack *s[2]; - s[0] = rte_stack_create("test", STACK_SIZE, rte_socket_id(), 0); + s[0] = rte_stack_create("test", STACK_SIZE, rte_socket_id(), flags); if (s[0] == NULL) { printf("[%s():%u] Failed to create a stack\n", __func__, __LINE__); return -1; } - s[1] = rte_stack_create("test", STACK_SIZE, rte_socket_id(), 0); + s[1] = rte_stack_create("test", STACK_SIZE, rte_socket_id(), flags); if (s[1] != NULL) { printf("[%s():%u] Failed to detect re-used name\n", __func__, __LINE__); @@ -202,7 +202,7 @@ test_stack_name_reuse(void) } static int -test_stack_name_length(void) +test_stack_name_length(uint32_t flags) { char name[RTE_STACK_NAMESIZE + 1]; struct rte_stack *s; @@ -210,7 +210,7 @@ test_stack_name_length(void) memset(name, 's', sizeof(name)); name[RTE_STACK_NAMESIZE] = '\0'; - s = rte_stack_create(name, STACK_SIZE, rte_socket_id(), 0); + s = rte_stack_create(name, STACK_SIZE, rte_socket_id(), flags); if (s != NULL) { printf("[%s():%u] Failed to prevent long name\n", __func__, __LINE__); @@ -329,19 +329,21 @@ stack_thread_push_pop(void *args) } static int -test_stack_multithreaded(void) +test_stack_multithreaded(uint32_t flags) { struct test_args *args; unsigned int lcore_id; struct rte_stack *s; rte_atomic64_t size; + if (rte_lcore_count() < 2) { + printf("Not enough cores for test_stack_multithreaded, expecting at least 2\n"); + return TEST_SKIPPED; + } + printf("[%s():%u] Running with %u lcores\n", __func__, __LINE__, rte_lcore_count()); - if (rte_lcore_count() < 2) - return 0; - args = rte_malloc(NULL, sizeof(struct test_args) * RTE_MAX_LCORE, 0); if (args == NULL) { printf("[%s():%u] failed to malloc %zu bytes\n", @@ -350,7 +352,7 @@ test_stack_multithreaded(void) return -1; } - s = rte_stack_create("test", STACK_SIZE, rte_socket_id(), 0); + s = rte_stack_create("test", STACK_SIZE, rte_socket_id(), flags); if (s == NULL) { printf("[%s():%u] Failed to create a stack\n", __func__, __LINE__); @@ -385,9 +387,9 @@ test_stack_multithreaded(void) } static int -test_stack(void) +__test_stack(uint32_t flags) { - if (test_stack_basic() < 0) + if (test_stack_basic(flags) < 0) return -1; if (test_lookup_null() < 0) @@ -396,16 +398,29 @@ test_stack(void) if (test_free_null() < 0) return -1; - if (test_stack_name_reuse() < 0) + if (test_stack_name_reuse(flags) < 0) return -1; - if (test_stack_name_length() < 0) + if (test_stack_name_length(flags) < 0) return -1; - if (test_stack_multithreaded() < 0) + if (test_stack_multithreaded(flags) < 0) return -1; return 0; } +static int +test_stack(void) +{ + return __test_stack(0); +} + +static int +test_lf_stack(void) +{ + return __test_stack(RTE_STACK_F_LF); +} + REGISTER_TEST_COMMAND(stack_autotest, test_stack); +REGISTER_TEST_COMMAND(stack_lf_autotest, test_lf_stack);