Commit d11edb7a authored by Yifan Bian's avatar Yifan Bian Committed by Tomasz Zawadzki
Browse files

test/llvm_nvme_fuzz: add COMPARE command test case



Change-Id: Id0e680a04a566486e4f13f7d0dcb73cbc27ed4dd
Signed-off-by: default avatarYifan Bian <yifan.bian@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12322


Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarDong Yi <dongx.yi@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
parent f2efa8f2
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -452,6 +452,26 @@ fuzz_nvm_reservation_report_command(struct fuzz_command *cmd)
	g_data += 5;
}

static void
fuzz_nvm_compare_command(struct fuzz_command *cmd)
{
	memset(&cmd->cmd, 0, sizeof(cmd->cmd));
	cmd->cmd.opc = SPDK_NVME_OPC_COMPARE;

	cmd->cmd.cdw10 = (g_data[0] << 24) + (g_data[1] << 16) +
			 (g_data[2] << 8) + g_data[3];
	cmd->cmd.cdw11 = (g_data[4] << 24) + (g_data[5] << 16) +
			 (g_data[6] << 8) + g_data[7];
	cmd->cmd.cdw12 = (g_data[8] << 24) + (g_data[9] << 16) +
			 (g_data[10] << 8) + g_data[11];
	cmd->cmd.cdw14 = (g_data[12] << 24) + (g_data[13] << 16) +
			 (g_data[14] << 8) + g_data[15];
	cmd->cmd.cdw15 = (g_data[16] << 24) + (g_data[17] << 16) +
			 (g_data[18] << 8) + g_data[19];

	g_data += 20;
}

static struct fuzz_type g_fuzzers[] = {
	{ .fn = fuzz_admin_command, .bytes_per_cmd = sizeof(struct spdk_nvme_cmd), .is_admin = true},
	{ .fn = fuzz_admin_get_log_page_command, .bytes_per_cmd = 6, .is_admin = true},
@@ -475,6 +495,7 @@ static struct fuzz_type g_fuzzers[] = {
	{ .fn = fuzz_nvm_reservation_release_command, .bytes_per_cmd = 10, .is_admin = false},
	{ .fn = fuzz_nvm_reservation_register_command, .bytes_per_cmd = 17, .is_admin = false},
	{ .fn = fuzz_nvm_reservation_report_command, .bytes_per_cmd = 5, .is_admin = false},
	{ .fn = fuzz_nvm_compare_command, .bytes_per_cmd = 20, .is_admin = false},
	{ .fn = NULL, .bytes_per_cmd = 0, .is_admin = 0}
};