> -----Original Message-----
> From: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
> Sent: Thursday, May 30, 2019 1:36 PM
> To: dev@dpdk.org; fiona.trahe@intel.com; tjozwiakgm.gmail.com@mx0a-
> 0016f401.pphosted.com; Shally Verma <shallyv@marvell.com>
> Subject: [EXT] [PATCH v1 2/7] app/test-compress-perf: add ptest command line
> option
>
> External Email
>
> ----------------------------------------------------------------------
> This patch adds --ptest option to make possible a choose of test case from
> command line.
>
> Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
> ---
> app/test-compress-perf/comp_perf_options_parse.c | 36
> ++++++++++++++++++++++++
> 1 file changed, 36 insertions(+)
>
> diff --git a/app/test-compress-perf/comp_perf_options_parse.c b/app/test-
> compress-perf/comp_perf_options_parse.c
> index bc4b98a..07672b2 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")
Why name cant be just CPERF_TEST_TYPE instead of PTEST_TYPE?
..
> 2.7.4
@@ -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"
@@ -76,6 +78,37 @@ get_str_key_id_mapping(struct name_id_map *map, unsigned int map_len,
}
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
+ },
+ {
+ cperf_test_type_strs[CPERF_TEST_TYPE_PMDCC],
+ CPERF_TEST_TYPE_PMDCC
+ }
+ };
+
+ 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)
{
char *end = NULL;
@@ -499,6 +532,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 },
@@ -517,6 +552,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 },