Re: [PATCH 2/5 blktests] nvme: test target cntlid min cntlid max
From: Omar Sandoval <osandov@osandov.com>
Date: 2020-02-11 21:58:17
Also in:
linux-nvme
On Wed, Jan 29, 2020 at 03:29:18PM -0800, Chaitanya Kulkarni wrote:
quoted hunk ↗ jump to hunk
The new testcases exercises newly added cntlid [min|max] attributes for NVMeOF target. Signed-off-by: Chaitanya Kulkarni <redacted> --- tests/nvme/033 | 57 ++++++++++++++++++++++++++++++++++++++++++++++ tests/nvme/033.out | 4 ++++ 2 files changed, 61 insertions(+) create mode 100755 tests/nvme/033 create mode 100644 tests/nvme/033.outdiff --git a/tests/nvme/033 b/tests/nvme/033 new file mode 100755 index 0000000..97eba7f --- /dev/null +++ b/tests/nvme/033@@ -0,0 +1,57 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0+ +# Copyright (c) 2017-2018 Western Digital Corporation or its affiliates. +# +# Test NVMeOF target cntlid[min|max] attributes. + +. tests/nvme/rc + +DESCRIPTION="Test NVMeOF target cntlid[min|max] attributes" +QUICK=1 + +requires() { + _have_program nvme && _have_modules loop nvme-loop nvmet && \ + _have_configfs +} + +test() { + echo "Running ${TEST_NAME}" + + _setup_nvmet + + local port + local nvmedev + local loop_dev + local cid_min=14 + local cid_max=15 + local file_path="$TMPDIR/img" + local subsys_name="blktests-subsystem-1" + + truncate -s 1G "${file_path}" + + loop_dev="$(losetup -f --show "${file_path}")" + + _create_nvmet_subsystem "${subsys_name}" "${loop_dev}" \ + "91fdba0d-f87b-4c25-b80f-db7be1418b9e" ${cid_min} ${cid_max} + port="$(_create_nvmet_port "loop")" + _add_nvmet_subsys_to_port "${port}" "${subsys_name}" + + nvme connect -t loop -n "${subsys_name}" + + udevadm settle + + nvmedev="$(_find_nvme_loop_dev)" + nvme id-ctrl /dev/${nvmedev}n1 | grep cntlid | tr -s ' ' ' ' + + nvme disconnect -n "${subsys_name}" + + _remove_nvmet_subsystem_from_port "${port}" "${subsys_name}" + _remove_nvmet_subsystem "${subsys_name}" + _remove_nvmet_port "${port}" + + losetup -d "${loop_dev}" + + rm "${file_path}" + + echo "Test complete" +}
Another shellcheck warning:
tests/nvme/033:44:20: note: Double quote to prevent globbing and word splitting. [SC2086]
Also, this fails on kernels without this feature:
nvme/033 (Test NVMeOF target cntlid[min|max] attributes) [failed]
runtime ... 2.262s
--- tests/nvme/033.out 2020-02-11 13:52:20.346831467 -0800
+++ /home/vmuser/repos/blktests/results/nodev/nvme/033.out.bad 2020-02-11 13:52:42.006948791 -0800
@@ -1,4 +1,4 @@
Running nvme/033
-cntlid : e
+cntlid : 0x1
NQN:blktests-subsystem-1 disconnected 1 controller(s)
Test complete
Presumably because _create_nvmet_subsystem silently does nothing if
attr_cntlid_min doesn't exist. We should skip the test if the kernel doesn't
support it rather than ignoring it in _create_nvmet_subsystem.