numam-spdk/test/setup/acl.sh
Michal Berger 0231fdc770 autotest: Skip use of any zoned nvme devices
Our tests, especially those which use nvme block devices for various
use-cases, won't be able to perform successful IO on such devices.
The idea is to skip them for now and introduce basic, dedicated,
tests for zoned nvmes in oncoming patches.

Signed-off-by: Michal Berger <michalx.berger@intel.com>
Change-Id: I67baad5c85c662921e3327f2101180283c89e96c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9181
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2021-12-06 08:34:46 +00:00

52 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
testdir=$(readlink -f "$(dirname "$0")")
rootdir=$(readlink -f "$testdir/../../")
source "$testdir/common.sh"
get_zoned_devs
declare -a devs=()
declare -A drivers=()
collect_setup_devs() {
local dev driver
while read -r _ dev _ _ _ driver _; do
[[ $dev == *:*:*.* ]] || continue
[[ $driver == nvme ]] || continue
[[ ${zoned_devs[*]} == *"$dev"* ]] && continue
devs+=("$dev") drivers["$dev"]=$driver
done < <(setup output status)
((${#devs[@]} > 0))
}
verify() {
local dev driver
for dev; do
[[ -e /sys/bus/pci/devices/$dev ]]
driver=$(readlink -f "/sys/bus/pci/devices/$dev/driver")
[[ ${drivers["$dev"]} == "${driver##*/}" ]]
done
}
denied() {
PCI_BLOCKED="$PCI_BLOCKED ${devs[0]}" setup output config \
| grep "Skipping denied controller at ${devs[0]}"
verify "${devs[0]}"
setup reset
}
allowed() {
PCI_ALLOWED="${devs[0]}" setup output config \
| grep -E "${devs[0]} .*: ${drivers["${devs[0]}"]} -> .*"
verify "${devs[@]:1}"
setup reset
}
setup reset
collect_setup_devs
run_test "denied" denied
run_test "allowed" allowed