@@ -62,8 +62,11 @@ test_device() {
_nvmet_passthru_target_setup
nsdev=$(_nvmet_passthru_target_connect)
-
- compare_dev_info "${nsdev}"
+ if [[ -z "$nsdev" ]]; then
+ echo "FAIL: Failed to find passthru target namespace"
+ else
+ compare_dev_info "${nsdev}"
+ fi
_nvme_disconnect_subsys
_nvmet_passthru_target_cleanup
@@ -27,13 +27,15 @@ test_device() {
_setup_nvmet
- local ctrldev
local nsdev
_nvmet_passthru_target_setup
nsdev=$(_nvmet_passthru_target_connect)
-
- _run_fio_verify_io --size="${NVME_IMG_SIZE}" --filename="${nsdev}"
+ if [[ -z "$nsdev" ]]; then
+ echo "FAIL: Failed to find passthru target namespace"
+ else
+ _run_fio_verify_io --size="${NVME_IMG_SIZE}" --filename="${nsdev}"
+ fi
_nvme_disconnect_subsys
_nvmet_passthru_target_cleanup
@@ -30,13 +30,13 @@ test_device() {
_setup_nvmet
- local ctrldev
local nsdev
_nvmet_passthru_target_setup
nsdev=$(_nvmet_passthru_target_connect)
-
- if ! _xfs_run_fio_verify_io "${nsdev}" "${NVME_IMG_SIZE}"; then
+ if [[ -z "$nsdev" ]]; then
+ echo "FAIL: Failed to find passthru target namespace"
+ elif ! _xfs_run_fio_verify_io "${nsdev}" "${NVME_IMG_SIZE}"; then
echo "FAIL: fio verify failed"
fi
@@ -27,14 +27,19 @@ test_device() {
_setup_nvmet
local ctrldev
+ local nsdev
_nvmet_passthru_target_setup
nsdev=$(_nvmet_passthru_target_connect)
- ctrldev=$(_find_nvme_dev "${def_subsysnqn}")
+ if [[ -z "$nsdev" ]]; then
+ echo "FAIL: Failed to find passthru target namespace"
+ else
+ ctrldev=$(_find_nvme_dev "${def_subsysnqn}")
- if ! nvme reset "/dev/${ctrldev}" >> "$FULL" 2>&1; then
- echo "ERROR: reset failed"
+ if ! nvme reset "/dev/${ctrldev}" >> "$FULL" 2>&1; then
+ echo "ERROR: reset failed"
+ fi
fi
_nvme_disconnect_subsys
@@ -27,7 +27,7 @@ test_device() {
local subsys="blktests-subsystem-"
local iterations=10
- local ctrldev
+ local nsdev
for ((i = 0; i < iterations; i++)); do
_nvmet_passthru_target_setup --subsysnqn "${subsys}${i}"
@@ -37,6 +37,11 @@ test_device() {
_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"
@@ -394,6 +394,8 @@ _nvmet_passthru_target_setup() {
_nvmet_passthru_target_connect() {
local subsysnqn="$def_subsysnqn"
+ local timeout="5"
+ local count="0"
while [[ $# -gt 0 ]]; do
case $1 in
@@ -414,7 +416,12 @@ _nvmet_passthru_target_connect() {
# The following tests can race with the creation
# of the device so ensure the block device exists
# before continuing
- while [ ! -b "${nsdev}" ]; do sleep 1; done
+ while [ ! -b "${nsdev}" ]; do
+ sleep 1
+ if ((++count >= timeout)); then
+ return 1
+ fi
+ done
echo "${nsdev}"
}
Avoid waiting indefinitely for nvme passthru namespace block device to appear. Wait for up to 5 seconds and during this time if namespace device doesn't appear then bail out and FAIL the test. Signed-off-by: Nilay Shroff <nilay@linux.ibm.com> --- Changes from v2: - Add nsdev check back into nvme/036 (Shnichiro Kawasaki) Changes from v1: - Add a meaningful error message if test fails (Shnichiro Kawasaki) - Use sleep "1" instead of ".1" while waiting for nsdev to be created as we don't see much gain in test runtime with short duration of sleep. This would also help further optimize the sleep logic (Shnichiro Kawasaki) - Few other trivial cleanups (Shnichiro Kawasaki) --- tests/nvme/033 | 7 +++++-- tests/nvme/034 | 8 +++++--- tests/nvme/035 | 6 +++--- tests/nvme/036 | 11 ++++++++--- tests/nvme/037 | 7 ++++++- tests/nvme/rc | 9 ++++++++- 6 files changed, 35 insertions(+), 13 deletions(-)