Commit ba76060e authored by Tomasz Zawadzki's avatar Tomasz Zawadzki Committed by Jim Harris
Browse files

ut/nvme: test namespace change with disable_read_changed_ns_list_log_page



Controller can have this flag set to allow upper layer to clear
the log page, while all the identifies to controller and
each active namespace still happen.

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


Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
Reviewed-by: default avatarKonrad Sztyber <ksztyber@nvidia.com>
parent 54982b08
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -3073,6 +3073,7 @@ test_nvme_ctrlr_ns_attr_changed(void)
	uint32_t changed_ns_list6_aer1[] = { 103, 104 };
	uint32_t active_ns_list6_aer2[] = { 1, 2, 105, 1024 };
	uint32_t changed_ns_list6_aer2[] = { 104, 105 };
	uint32_t active_ns_list7[] = { 1, 2, 105, 106, 1024 };
	union spdk_nvme_async_event_completion	aer_event = {
		.bits.async_event_type = SPDK_NVME_ASYNC_EVENT_TYPE_NOTICE,
		.bits.async_event_info = SPDK_NVME_ASYNC_EVENT_NS_ATTR_CHANGED
@@ -3188,6 +3189,18 @@ test_nvme_ctrlr_ns_attr_changed(void)
	CU_ASSERT(!spdk_nvme_ctrlr_is_active_ns(&ctrlr, 103));
	CU_ASSERT(!spdk_nvme_ctrlr_is_active_ns(&ctrlr, 104));

	/* Reading the log page is disabled. Identify is still called for the controller,
	 * and every namespace on it. */
	ctrlr.opts.disable_read_changed_ns_list_log_page = true;
	g_aer_cb_counter = 0;
	g_nvme_ns_constructed = 0;
	setup_aer_for_ns_change(active_ns_list7, SPDK_COUNTOF(active_ns_list7), NULL, 0);
	nvme_ctrlr_complete_queued_async_events(&ctrlr);
	CU_ASSERT(g_aer_cb_counter == 1);
	CU_ASSERT(g_nvme_ns_constructed == SPDK_COUNTOF(active_ns_list7));
	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;