diff options
Diffstat (limited to 'usr/src/test')
-rw-r--r-- | usr/src/test/util-tests/tests/pcieadm/pcieadm-priv.ksh | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/usr/src/test/util-tests/tests/pcieadm/pcieadm-priv.ksh b/usr/src/test/util-tests/tests/pcieadm/pcieadm-priv.ksh index 0e9c8bc796..749e4b5e4b 100644 --- a/usr/src/test/util-tests/tests/pcieadm/pcieadm-priv.ksh +++ b/usr/src/test/util-tests/tests/pcieadm/pcieadm-priv.ksh @@ -12,7 +12,7 @@ # # -# Copyright 2021 Oxide Computer Company +# Copyright 2022 Oxide Computer Company # # @@ -48,6 +48,12 @@ pcieadm_validate_filter() printf "TEST PASSED: show-devs $filter\n" fi + if $pcieadm_prog show-devs $filter 9000/9000/9000; then + warn "show-devs $filter 9000/9000/9000, should have failed" + else + printf "TEST PASSED: show-devs $filter 9000/9000/9000\n" + fi + if ! $pcieadm_prog show-cfgspace -d $filter >/dev/null; then warn "failed to show-cfgspace with filter $filter" else @@ -96,9 +102,22 @@ else fi # -# Verify based on device. +# Do the same based on the device name +# +pcieadm_dev=$($pcieadm_prog show-devs -p -o driver | \ + awk '{ if ($1 != "--") { print $1; exit 0 } }') +if [[ -z "$pcieadm_dev" ]]; then + warn "failed to obtain driver based filter" +else + pcieadm_validate_filter "$pcieadm_dev" +fi + +# +# Verify based on the /devices path. Note, we use the device name to +# seed this as if there is no device driver attached, the path may +# overlap with another device on a PCI-only (non-express) based system. # -pcieadm_path=$($pcieadm_prog show-devs -p -o path | \ +pcieadm_path=$($pcieadm_prog show-devs -p -o path $pcieadm_dev | \ awk '{ print $1; exit 0 }') if [[ -z "$pcieadm_path" ]]; then warn "failed to obtain path based filter" @@ -107,14 +126,12 @@ else fi # -# Do the same based on the device name +# Verify a bad filter doesn't work and results in an error. # -pcieadm_dev=$($pcieadm_prog show-devs -p -o driver | \ - awk '{ if ($1 != "--") { print $1; exit 0 } }') -if [[ -z "$pcieadm_dev" ]]; then - warn "failed to obtain driver based filter" +if $pcieadm_prog show-devs /enoent >/dev/null; then + warn "pcieadm succeeded with bad filter '/enoent'" else - pcieadm_validate_filter "$pcieadm_dev" + printf "TEST PASSED: show-devs /enoent\n" fi if ! $pcieadm_prog save-cfgspace -a "$pcieadm_tmp" > /dev/null; then |