f2f1060ed2
In case when no device supporting Namespace Managment was found, the test case exits without producing an error. For example QEMU NVMe emulated device does not support it, thus only physical devices have to be used right now. This goes against design of "run_test" function, that when executed should always run and never silently skip. This patch adds check whether there is a device support and triggers the test case only then. Note that original code for selecting the device is still in original script. This is to enable running nvme_ns_manage_cuse.sh on its own. Right now CUSE tests are only enabled on VMs so nvme_ns_manage_cuse, was added to exception list. This will soon be reverted as the tests are moved to job that runs on physical machines. Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: Ie784696c2628b5fe45ce751b3978abcc03118cd9 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2828 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Karol Latecki <karol.latecki@intel.com>
47 lines
1.1 KiB
Bash
Executable File
47 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
testdir=$(readlink -f $(dirname $0))
|
|
rootdir=$(readlink -f $testdir/../../..)
|
|
source $rootdir/scripts/common.sh
|
|
source $rootdir/test/common/autotest_common.sh
|
|
|
|
if [[ $(uname) != "Linux" ]]; then
|
|
echo "NVMe cuse tests only supported on Linux"
|
|
exit 1
|
|
fi
|
|
|
|
modprobe cuse
|
|
run_test "nvme_cuse_app" $testdir/cuse
|
|
run_test "nvme_cuse_rpc" $testdir/nvme_cuse_rpc.sh
|
|
run_test "nvme_cli_cuse" $testdir/spdk_nvme_cli_cuse.sh
|
|
run_test "nvme_smartctl_cuse" $testdir/spdk_smartctl_cuse.sh
|
|
|
|
# Only run Namespace managment test case when such device is present
|
|
bdfs=$(get_nvme_bdfs)
|
|
|
|
$rootdir/scripts/setup.sh reset
|
|
sleep 1
|
|
|
|
# Find bdf that supports Namespace managment
|
|
for bdf in $bdfs; do
|
|
nvme_name=$(get_nvme_ctrlr_from_bdf ${bdf})
|
|
if [[ -z "$nvme_name" ]]; then
|
|
continue
|
|
fi
|
|
|
|
# Check Optional Admin Command Support for Namespace Management
|
|
oacs=$(nvme id-ctrl /dev/${nvme_name} | grep oacs | cut -d: -f2)
|
|
oacs_ns_manage=$((oacs & 0x8))
|
|
|
|
if [[ "$oacs_ns_manage" -ne 0 ]]; then
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [[ "$oacs_ns_manage" -ne 0 ]]; then
|
|
run_test "nvme_ns_manage_cuse" $testdir/nvme_ns_manage_cuse.sh
|
|
fi
|
|
$rootdir/scripts/setup.sh
|
|
|
|
rmmod cuse
|