From: Amit Prakash Shukla <amitpraka...@marvell.com> Add support to skip running a dma-perf test-case.
Signed-off-by: Amit Prakash Shukla <amitpraka...@marvell.com> Acked-by: Anoob Joseph <ano...@marvell.com> --- app/test-dma-perf/config.ini | 2 ++ app/test-dma-perf/main.c | 23 +++++++++++++++++++++++ app/test-dma-perf/main.h | 1 + 3 files changed, 26 insertions(+) diff --git a/app/test-dma-perf/config.ini b/app/test-dma-perf/config.ini index b550f4b23f..4d59234b2a 100644 --- a/app/test-dma-perf/config.ini +++ b/app/test-dma-perf/config.ini @@ -36,6 +36,8 @@ ; If you do not specify a result file, one will be generated with the same name as the configuration ; file, with the addition of "_result.csv" at the end. +; "skip" To skip a test-case set skip to 1. + [case1] type=DMA_MEM_COPY mem_size=10 diff --git a/app/test-dma-perf/main.c b/app/test-dma-perf/main.c index e5bccc27da..61260fa072 100644 --- a/app/test-dma-perf/main.c +++ b/app/test-dma-perf/main.c @@ -320,6 +320,7 @@ load_configs(const char *path) const char *case_type; const char *lcore_dma; const char *mem_size_str, *buf_size_str, *ring_size_str, *kick_batch_str; + const char *skip; int args_nr, nb_vp; bool is_dma; @@ -339,6 +340,13 @@ load_configs(const char *path) for (i = 0; i < nb_sections; i++) { snprintf(section_name, CFG_NAME_LEN, "case%d", i + 1); test_case = &test_cases[i]; + + skip = rte_cfgfile_get_entry(cfgfile, section_name, "skip"); + if (skip && (atoi(skip) == 1)) { + test_case->is_skip = true; + continue; + } + case_type = rte_cfgfile_get_entry(cfgfile, section_name, "type"); if (case_type == NULL) { printf("Error: No case type in case %d, the test will be finished here.\n", @@ -523,6 +531,21 @@ main(int argc, char *argv[]) printf("Running cases...\n"); for (i = 0; i < case_nb; i++) { + if (test_cases[i].is_skip) { + printf("Test case %d configured to be skipped.\n\n", i + 1); + snprintf(output_str[0], MAX_OUTPUT_STR_LEN, "Skip the test-case %d\n", + i + 1); + + fd = fopen(rst_path_ptr, "a"); + if (!fd) { + printf("Open output CSV file error.\n"); + return 0; + } + output_csv(true); + fclose(fd); + continue; + } + if (!test_cases[i].is_valid) { printf("Invalid test case %d.\n\n", i + 1); snprintf(output_str[0], MAX_OUTPUT_STR_LEN, "Invalid case %d\n", i + 1); diff --git a/app/test-dma-perf/main.h b/app/test-dma-perf/main.h index f65e264378..be89cb2b65 100644 --- a/app/test-dma-perf/main.h +++ b/app/test-dma-perf/main.h @@ -41,6 +41,7 @@ struct lcore_dma_map_t { struct test_configure { bool is_valid; + bool is_skip; uint8_t test_type; const char *test_type_str; uint16_t src_numa_node; -- 2.25.1