#!/bin/bash
# SPDX-License-Identifier: GPL-3.0+
# Copyright (C) 2019 Logan Gunthorpe
# Copyright (C) 2019 Eideticom Communications Inc.

. tests/nvme/rc

DESCRIPTION="test deletion of NVMeOF passthru controllers immediately after setup"

requires() {
	_nvme_requires
	_have_kernel_option NVME_TARGET_PASSTHRU
}

device_requires() {
	_require_test_dev_is_not_nvme_multipath
}

set_conditions() {
	_set_nvme_trtype "$@"
}

test_device() {
	echo "Running ${TEST_NAME}"

	_setup_nvmet

	local subsys="blktests-subsystem-"
	local iterations=10
	local nsdev

	for ((i = 0; i < iterations; i++)); do
		_nvmet_passthru_target_setup --subsysnqn "${subsys}${i}"
		nsdev=$(_nvmet_passthru_target_connect \
				--subsysnqn "${subsys}${i}")

		_nvme_disconnect_subsys \
			--subsysnqn "${subsys}${i}" >>"${FULL}" 2>&1
		_nvmet_passthru_target_cleanup --subsysnqn "${subsys}${i}"

		if [[ -z "$nsdev" ]]; then
			echo "FAIL: Failed to find passthru target namespace"
			break
		fi
	done

	echo "Test complete"
}
