@@ -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,33 @@ 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
+ }
+ };
+
+ 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 +528,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 +548,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 },