ut/nvme: Test Set Num Queues controller intialization step

Signed-off-by: Evgeniy Kochetov <evgeniik@mellanox.com>
Change-Id: I590420fb7d976240a5a924ea7c0204c29d072990
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1272
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
Evgeniy Kochetov 2020-03-14 17:35:24 +00:00 committed by Tomasz Zawadzki
parent 2ca711694e
commit 19453e5b6c

View File

@ -207,13 +207,13 @@ int nvme_qpair_init(struct spdk_nvme_qpair *qpair, uint16_t id,
return 0;
}
static struct spdk_nvme_cpl fake_cpl = {};
static void
fake_cpl_success(spdk_nvme_cmd_cb cb_fn, void *cb_arg)
{
struct spdk_nvme_cpl cpl = {};
cpl.status.sc = SPDK_NVME_SC_SUCCESS;
cb_fn(cb_arg, &cpl);
fake_cpl.status.sc = SPDK_NVME_SC_SUCCESS;
cb_fn(cb_arg, &fake_cpl);
}
int
@ -2052,6 +2052,26 @@ test_nvme_ctrlr_init_set_nvmf_ioccsz(void)
nvme_ctrlr_destruct(&ctrlr);
}
static void
test_nvme_ctrlr_init_set_num_queues(void)
{
DECLARE_AND_CONSTRUCT_CTRLR();
ctrlr.state = NVME_CTRLR_STATE_IDENTIFY;
CU_ASSERT(nvme_ctrlr_process_init(&ctrlr) == 0); /* -> SET_NUM_QUEUES */
CU_ASSERT(ctrlr.state == NVME_CTRLR_STATE_SET_NUM_QUEUES);
ctrlr.opts.num_io_queues = 64;
/* Num queues is zero-based. So, use 31 to get 32 queues */
fake_cpl.cdw0 = 31 + (31 << 16);
CU_ASSERT(nvme_ctrlr_process_init(&ctrlr) == 0); /* -> CONSTRUCT_NS */
CU_ASSERT(ctrlr.state == NVME_CTRLR_STATE_CONSTRUCT_NS);
CU_ASSERT(ctrlr.opts.num_io_queues == 32);
fake_cpl.cdw0 = 0;
nvme_ctrlr_destruct(&ctrlr);
}
int main(int argc, char **argv)
{
CU_pSuite suite = NULL;
@ -2111,6 +2131,8 @@ int main(int argc, char **argv)
|| CU_add_test(suite, "test_spdk_nvme_ctrlr_set_trid", test_spdk_nvme_ctrlr_set_trid) == NULL
|| CU_add_test(suite, "test_nvme_ctrlr_init_set_nvmf_ioccsz",
test_nvme_ctrlr_init_set_nvmf_ioccsz) == NULL
|| CU_add_test(suite, "test nvme ctrlr init set num queues",
test_nvme_ctrlr_init_set_num_queues) == NULL
) {
CU_cleanup_registry();
return CU_get_error();