Commit c77d4d5b authored by Tomasz Zawadzki's avatar Tomasz Zawadzki Committed by Tomasz Zawadzki
Browse files

ut/nvme: add UT setup for nvme_ctrlr.c tests



Instead of making sure to set every global back to
a sane value, created ut_setup() that goes over
every variable.

Change-Id: I6319f653702e89a46fdc9a2590f51d7f4b48d3ad
Signed-off-by: default avatarTomasz Zawadzki <tomasz.zawadzki@nutanix.com>
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/26354


Reviewed-by: default avatarKonrad Sztyber <ksztyber@nvidia.com>
Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
parent 7afb03f0
Loading
Loading
Loading
Loading
+35 −33
Original line number Diff line number Diff line
@@ -2204,11 +2204,8 @@ test_spdk_nvme_ctrlr_update_firmware(void)
	   If spdk_nvme_ctrlr_update_firmware changes its behaviour and frees the status
	   itself, we'll get a double free here.. */
	free(g_failed_status);
	g_failed_status = NULL;
	g_wait_for_completion_return_val = 0;

	CU_ASSERT(pthread_mutex_destroy(&ctrlr.ctrlr_lock) == 0);
	set_status_cpl = 0;
}

int
@@ -2324,9 +2321,6 @@ test_nvme_ctrlr_test_active_ns(void)

		nvme_ctrlr_destruct(&ctrlr);
	}

	g_active_ns_list = NULL;
	g_active_ns_list_length = 0;
}

static void
@@ -2344,7 +2338,6 @@ test_nvme_ctrlr_test_active_ns_error_case(void)
	set_status_code = SPDK_NVME_SC_INVALID_FIELD;
	rc = nvme_ctrlr_identify_active_ns(&ctrlr);
	CU_ASSERT(rc == -ENXIO);
	set_status_code = SPDK_NVME_SC_SUCCESS;
}

static void
@@ -2607,8 +2600,6 @@ test_nvme_ctrlr_init_set_nvmf_ioccsz(void)
	ctrlr.icdoff = 0;

	nvme_ctrlr_destruct(&ctrlr);

	g_cdata = NULL;
}

static void
@@ -2874,9 +2865,6 @@ test_nvme_ctrlr_active_ns_list_v2(void)
	CU_ASSERT(spdk_nvme_ctrlr_get_next_active_ns(&ctrlr, 1025) == 0);

	nvme_ctrlr_destruct(&ctrlr);

	g_active_ns_list = NULL;
	g_active_ns_list_length = 0;
}

static void
@@ -2925,8 +2913,6 @@ test_nvme_ctrlr_ns_mgmt(void)
	CU_ASSERT(spdk_nvme_ctrlr_delete_ns(&ctrlr, 3) == 0);
	CU_ASSERT(!spdk_nvme_ctrlr_is_active_ns(&ctrlr, 3));
	CU_ASSERT(spdk_nvme_ctrlr_get_ns(&ctrlr, 3) != NULL);
	g_active_ns_list = NULL;
	g_active_ns_list_length = 0;

	nvme_ctrlr_destruct(&ctrlr);
}
@@ -2977,9 +2963,6 @@ test_nvme_ctrlr_reset(void)
	CU_ASSERT(spdk_nvme_ctrlr_reset(&ctrlr) == 0);
	g_set_reg_cb = NULL;
	CU_ASSERT(ctrlr.state == NVME_CTRLR_STATE_READY);
	g_cdata = NULL;
	g_active_ns_list = NULL;
	g_active_ns_list_length = 0;

	CU_ASSERT(spdk_nvme_ctrlr_get_num_ns(&ctrlr) == 4096);
	CU_ASSERT(spdk_nvme_ctrlr_get_ns(&ctrlr, 2) != NULL);
@@ -2987,8 +2970,6 @@ test_nvme_ctrlr_reset(void)

	g_ut_nvme_regs.csts.bits.shst = SPDK_NVME_SHST_COMPLETE;
	nvme_ctrlr_destruct(&ctrlr);

	g_wait_for_completion_return_val = 0;
}

static uint32_t g_aer_cb_counter;
@@ -3036,8 +3017,6 @@ test_nvme_ctrlr_aer_callback(void)
	nvme_ctrlr_async_event_cb(&ctrlr.aer[0], &aer_cpl);
	nvme_ctrlr_complete_queued_async_events(&ctrlr);
	CU_ASSERT(g_aer_cb_counter == 1);
	g_active_ns_list = NULL;
	g_active_ns_list_length = 0;

	nvme_ctrlr_free_processes(&ctrlr);
	nvme_ctrlr_destruct(&ctrlr);
@@ -3201,13 +3180,6 @@ test_nvme_ctrlr_ns_attr_changed(void)
	check_active_ns(&ctrlr, active_ns_list7, SPDK_COUNTOF(active_ns_list7));
	ctrlr.opts.disable_read_changed_ns_list_log_page = false;

	g_active_ns_list = NULL;
	g_active_ns_list_length = 0;
	g_changed_ns_list = NULL;
	g_changed_ns_list_length = 0;
	g_aer_cb_counter = 0;
	g_nvme_ns_constructed = 0;
	g_needs_setup_aer_for_ns_change = false;
	nvme_ctrlr_free_processes(&ctrlr);
	nvme_ctrlr_destruct(&ctrlr);
}
@@ -3516,10 +3488,6 @@ test_nvme_ctrlr_ana_resize(void)
		CU_ASSERT(ns->ana_state == SPDK_NVME_ANA_OPTIMIZED_STATE);
	}

	g_active_ns_list = NULL;
	g_active_ns_list_length = 0;
	g_ana_hdr = NULL;
	g_ana_descs = NULL;
	nvme_ctrlr_free_processes(&ctrlr);
	nvme_ctrlr_destruct(&ctrlr);
}
@@ -3604,6 +3572,40 @@ test_nvme_numa_id(void)
	CU_ASSERT(spdk_nvme_ctrlr_get_numa_id(&ctrlr) == SPDK_ENV_NUMA_ID_ANY);
}

static void
ut_setup(void)
{
	g_set_reg_cb = NULL;

	set_size = 1;
	set_status_cpl = 0;

	memset(&fake_cpl, 0, sizeof(fake_cpl));
	set_status_code = SPDK_NVME_SC_SUCCESS;

	g_ut_cdw11 = 0;

	g_wait_for_completion_return_val = 0;
	g_failed_status = NULL;

	g_active_ns_list = NULL;
	g_active_ns_list_length = 0;
	g_cdata = NULL;
	g_fail_next_identify = false;

	memset(&g_aer_ns_change, 0, sizeof(g_aer_ns_change));
	g_changed_ns_list = NULL;
	g_changed_ns_list_length = 0;

	g_needs_setup_aer_for_ns_change = false;

	g_ana_hdr = NULL;
	g_ana_descs = NULL;

	g_nvme_ns_constructed = 0;
	g_aer_cb_counter = 0;
}

int
main(int argc, char **argv)
{
@@ -3612,7 +3614,7 @@ main(int argc, char **argv)

	CU_initialize_registry();

	suite = CU_add_suite("nvme_ctrlr", NULL, NULL);
	suite = CU_add_suite_with_setup_and_teardown("nvme_ctrlr", NULL, NULL, ut_setup, NULL);

	CU_ADD_TEST(suite, test_nvme_ctrlr_init_en_1_rdy_0);
	CU_ADD_TEST(suite, test_nvme_ctrlr_init_en_1_rdy_1);