This tests creates and connects to a passthru controller backed by a test NVMe namespace. It then verifies that some common fields in id-ctrl and id-ns are the same in the target and the orginial device. Signed-off-by: Logan Gunthorpe <logang@xxxxxxxxxxxx> --- tests/nvme/033 | 67 ++++++++++++++++++++++++++++++++++++++++++++++ tests/nvme/033.out | 7 +++++ 2 files changed, 74 insertions(+) create mode 100755 tests/nvme/033 create mode 100644 tests/nvme/033.out diff --git a/tests/nvme/033 b/tests/nvme/033 new file mode 100755 index 000000000000..c6a3f7feb50e --- /dev/null +++ b/tests/nvme/033 @@ -0,0 +1,67 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-3.0+ +# Copyright (C) 2019 Logan Gunthorpe +# Copyright (C) 2019 Eideticom Communications Inc. + +. tests/nvme/rc + +DESCRIPTION="create and connect to an NVMeOF target with a passthru controller" +QUICK=1 + +requires() { + _nvme_requires + _have_kernel_option NVME_TARGET_PASSTHRU +} + +nvme_info() { + local ns=$1 + + nvme id-ctrl "${ns}" | grep -E '^(vid|sn|mn|fr) ' + nvme id-ns "${ns}" | grep -E '^(nsze|ncap) ' +} + +compare_dev_info() { + local passthru_dev=$1 + local testdev_info + local passthru_info + + testdev_info=$(nvme_info "${TEST_DEV}") + passthru_info=$(nvme_info "${passthru_dev}") + + cat >> "${FULL}" <<- EOF + + Test Device ${TEST_DEV} Info: + $testdev_info + + Passthru Device ${passthru_dev} Info: + $passthru_info + + EOF + + diff -u <(echo "${testdev_info}") <(echo "${passthru_info}") + if [[ "${testdev_info}" != "${passthru_info}" ]]; then + echo "ERROR: Device information does not match! (See ${FULL})" + fi +} + +test_device() { + local subsys="blktests-subsystem-1" + local nsdev + local port + + echo "Running ${TEST_NAME}" + + _setup_nvmet + port=$(_nvmet_passthru_target_setup "${subsys}") + + _nvme_discover "${nvme_trtype}" | _filter_discovery + + nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" "${subsys}") + + compare_dev_info "${nsdev}" + + _nvme_disconnect_subsys "${subsys}" + _nvmet_passthru_target_cleanup "${port}" "${subsys}" + + echo "Test complete" +} diff --git a/tests/nvme/033.out b/tests/nvme/033.out new file mode 100644 index 000000000000..6f45a1d5ec1d --- /dev/null +++ b/tests/nvme/033.out @@ -0,0 +1,7 @@ +Running nvme/033 +Discovery Log Number of Records 1, Generation counter X +=====Discovery Log Entry 0====== +trtype: loop +subnqn: blktests-subsystem-1 +NQN:blktests-subsystem-1 disconnected 1 controller(s) +Test complete -- 2.20.1