[v6,2/6] app/test-compress-perf: add ptest command line option

Message ID 20190703152418.8601-3-arturx.trybula@intel.com (mailing list archive)
State Superseded, archived
Delegated to: akhil goyal
Headers
Series add multiple cores feature to test-compress-perf |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail apply issues

Commit Message

Artur Trybula July 3, 2019, 3:24 p.m. UTC
  From: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>

This patch adds --ptest option to make possible a choose
of test case from command line.

Signed-off-by: Tomasz Jozwiak <tjozwiakgm@gmail.com>
Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Acked-by: Artur Trybula <arturx.trybula@intel.com>
---
 .../comp_perf_options_parse.c                 | 32 +++++++++++++++++++
 1 file changed, 32 insertions(+)
  

Patch

diff --git a/app/test-compress-perf/comp_perf_options_parse.c b/app/test-compress-perf/comp_perf_options_parse.c
index 74ea81d09..3d820197a 100644
--- a/app/test-compress-perf/comp_perf_options_parse.c
+++ b/app/test-compress-perf/comp_perf_options_parse.c
@@ -15,6 +15,7 @@ 
 
 #include "comp_perf_options.h"
 
+#define CPERF_PTEST_TYPE	("ptest")
 #define CPERF_DRIVER_NAME	("driver-name")
 #define CPERF_TEST_FILE		("input-file")
 #define CPERF_SEG_SIZE		("seg-sz")
@@ -37,6 +38,7 @@  static void
 usage(char *progname)
 {
 	printf("%s [EAL options] --\n"
+		" --ptest benchmark / verify :"
 		" --driver-name NAME: compress driver to use\n"
 		" --input-file NAME: file to compress and decompress\n"
 		" --extended-input-sz N: extend file data up to this size (default: no extension)\n"
@@ -75,6 +77,33 @@  get_str_key_id_mapping(struct name_id_map *map, unsigned int map_len,
 	return -1;
 }
 
+static int
+parse_cperf_test_type(struct comp_test_data *test_data, const char *arg)
+{
+	struct name_id_map cperftest_namemap[] = {
+		{
+			cperf_test_type_strs[CPERF_TEST_TYPE_BENCHMARK],
+			CPERF_TEST_TYPE_BENCHMARK
+		},
+		{
+			cperf_test_type_strs[CPERF_TEST_TYPE_VERIFY],
+			CPERF_TEST_TYPE_VERIFY
+		}
+	};
+
+	int id = get_str_key_id_mapping(
+			(struct name_id_map *)cperftest_namemap,
+			RTE_DIM(cperftest_namemap), arg);
+	if (id < 0) {
+		RTE_LOG(ERR, USER1, "failed to parse test type");
+		return -1;
+	}
+
+	test_data->test = (enum cperf_perf_test_type)id;
+
+	return 0;
+}
+
 static int
 parse_uint32_t(uint32_t *value, const char *arg)
 {
@@ -501,6 +530,8 @@  struct long_opt_parser {
 };
 
 static struct option lgopts[] = {
+
+	{ CPERF_PTEST_TYPE, required_argument, 0, 0 },
 	{ CPERF_DRIVER_NAME, required_argument, 0, 0 },
 	{ CPERF_TEST_FILE, required_argument, 0, 0 },
 	{ CPERF_SEG_SIZE, required_argument, 0, 0 },
@@ -519,6 +550,7 @@  static int
 comp_perf_opts_parse_long(int opt_idx, struct comp_test_data *test_data)
 {
 	struct long_opt_parser parsermap[] = {
+		{ CPERF_PTEST_TYPE,	parse_cperf_test_type },
 		{ CPERF_DRIVER_NAME,	parse_driver_name },
 		{ CPERF_TEST_FILE,	parse_test_file },
 		{ CPERF_SEG_SIZE,	parse_seg_sz },