Commit 84dbdf08 authored by Tomasz Zawadzki's avatar Tomasz Zawadzki
Browse files

example/accel_perf: return when no workload is specified



If no workload is specified via arguments, then parse_args
does not execute for -w that sets g_workload_selection.

Resulting in taking the default of COPY enum (equals 0).
This patch initializes g_workload_selection to value that
will never be used for a valid operation (SPDK_ACCEL_OPC_LAST)
and double checks it after parsing the arguments.

Signed-off-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: I4b2a4a5d3665e3d3703fa688fed961d5f8e2d42d
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/20971


Community-CI: Mellanox Build Bot
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent 724f3006
Loading
Loading
Loading
Loading
+4 −10
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@ static uint8_t g_fill_pattern = 255;
static uint32_t g_xor_src_count = 2;
static bool g_verify = false;
static const char *g_workload_type = NULL;
static enum spdk_accel_opcode g_workload_selection;
static enum spdk_accel_opcode g_workload_selection = SPDK_ACCEL_OPC_LAST;
static struct worker_thread *g_workers = NULL;
static int g_num_workers = 0;
static char *g_cd_file_in_name = NULL;
@@ -254,6 +254,7 @@ parse_args(int ch, char *arg)
		} else if (!strcmp(g_workload_type, "xor")) {
			g_workload_selection = SPDK_ACCEL_OPC_XOR;
		} else {
			fprintf(stderr, "Unsupported workload type: %s\n", optarg);
			usage();
			return 1;
		}
@@ -1166,15 +1167,8 @@ main(int argc, char **argv)
		return rc == SPDK_APP_PARSE_ARGS_HELP ? 0 : 1;
	}

	if ((g_workload_selection != SPDK_ACCEL_OPC_COPY) &&
	    (g_workload_selection != SPDK_ACCEL_OPC_FILL) &&
	    (g_workload_selection != SPDK_ACCEL_OPC_CRC32C) &&
	    (g_workload_selection != SPDK_ACCEL_OPC_COPY_CRC32C) &&
	    (g_workload_selection != SPDK_ACCEL_OPC_COMPARE) &&
	    (g_workload_selection != SPDK_ACCEL_OPC_COMPRESS) &&
	    (g_workload_selection != SPDK_ACCEL_OPC_DECOMPRESS) &&
	    (g_workload_selection != SPDK_ACCEL_OPC_DUALCAST) &&
	    (g_workload_selection != SPDK_ACCEL_OPC_XOR)) {
	if (g_workload_selection == SPDK_ACCEL_OPC_LAST) {
		fprintf(stderr, "Must provide a workload type\n");
		usage();
		return -1;
	}