nvme: Add unit test for nvme_ctrlr_disable() and _poll()
nvme_ctrlr_disable() and nvme_ctrlr_disable_poll() were added almost a year ago but they did not have any unit test. Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I4d9abe37e5aea18893509776b54de495a407ba67 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17000 Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Michael Haeuptle <michaelhaeuptle@gmail.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
c14554b681
commit
772bffcbf9
@ -3328,6 +3328,38 @@ test_nvme_transport_ctrlr_ready(void)
|
|||||||
MOCK_CLEAR(nvme_transport_ctrlr_ready);
|
MOCK_CLEAR(nvme_transport_ctrlr_ready);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_nvme_ctrlr_disable(void)
|
||||||
|
{
|
||||||
|
DECLARE_AND_CONSTRUCT_CTRLR();
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
SPDK_CU_ASSERT_FATAL(nvme_ctrlr_construct(&ctrlr) == 0);
|
||||||
|
|
||||||
|
ctrlr.state = NVME_CTRLR_STATE_TRANSPORT_READY;
|
||||||
|
SPDK_CU_ASSERT_FATAL(nvme_ctrlr_process_init(&ctrlr) == 0);
|
||||||
|
CU_ASSERT(ctrlr.state == NVME_CTRLR_STATE_READY);
|
||||||
|
|
||||||
|
/* Start a Controller Level Reset. */
|
||||||
|
ctrlr.is_disconnecting = true;
|
||||||
|
nvme_ctrlr_disable(&ctrlr);
|
||||||
|
|
||||||
|
g_ut_nvme_regs.cc.bits.en = 0;
|
||||||
|
|
||||||
|
rc = nvme_ctrlr_disable_poll(&ctrlr);
|
||||||
|
CU_ASSERT(rc == -EAGAIN);
|
||||||
|
CU_ASSERT(ctrlr.state == NVME_CTRLR_STATE_DISABLE_WAIT_FOR_READY_0);
|
||||||
|
|
||||||
|
g_ut_nvme_regs.csts.bits.rdy = 0;
|
||||||
|
|
||||||
|
rc = nvme_ctrlr_disable_poll(&ctrlr);
|
||||||
|
CU_ASSERT(rc == 0);
|
||||||
|
CU_ASSERT(ctrlr.state == NVME_CTRLR_STATE_DISABLED);
|
||||||
|
|
||||||
|
g_ut_nvme_regs.csts.bits.shst = SPDK_NVME_SHST_COMPLETE;
|
||||||
|
nvme_ctrlr_destruct(&ctrlr);
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
@ -3384,6 +3416,7 @@ main(int argc, char **argv)
|
|||||||
CU_ADD_TEST(suite, test_nvme_ctrlr_ana_resize);
|
CU_ADD_TEST(suite, test_nvme_ctrlr_ana_resize);
|
||||||
CU_ADD_TEST(suite, test_nvme_ctrlr_get_memory_domains);
|
CU_ADD_TEST(suite, test_nvme_ctrlr_get_memory_domains);
|
||||||
CU_ADD_TEST(suite, test_nvme_transport_ctrlr_ready);
|
CU_ADD_TEST(suite, test_nvme_transport_ctrlr_ready);
|
||||||
|
CU_ADD_TEST(suite, test_nvme_ctrlr_disable);
|
||||||
|
|
||||||
CU_basic_set_mode(CU_BRM_VERBOSE);
|
CU_basic_set_mode(CU_BRM_VERBOSE);
|
||||||
CU_basic_run_tests();
|
CU_basic_run_tests();
|
||||||
|
Loading…
Reference in New Issue
Block a user