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);
|
||||
}
|
||||
|
||||
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
|
||||
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_get_memory_domains);
|
||||
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_run_tests();
|
||||
|
Loading…
Reference in New Issue
Block a user