0231fdc770
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>
52 lines
1.1 KiB
Bash
Executable File
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
|