mirror_zfs/tests/zfs-tests/include/zpool_script.shlib
Giuseppe Di Natale 8bb800d6b4 Clean up (k)shlib and cfg file shebangs
Most kshlib files are imported by other scripts
and do not have a shebang at the top of their files.
Make all kshlib follow this convention.

Remove shebangs from cfg files as well.

Reviewed-by: loli10K <ezomori.nozomu@gmail.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Close #7406
2018-05-07 17:19:57 -07:00

50 lines
1.3 KiB
Plaintext
Executable File

#
# Common functions used by the zpool_status and zpool_iostat tests for running
# scripts with the -c option.
#
# Copyright (c) 2017 Lawrence Livermore National Security, LLC.
#
. $STF_SUITE/include/libtest.shlib
function test_zpool_script {
script="$1"
testpool="$2"
cmd="$3"
wholecmd="$cmd $script $testpool"
out="$($wholecmd)"
# Default number of columns that get printed without -c
if echo "$cmd" | grep -q iostat ; then
# iostat
dcols=7
else
# status
dcols=5
fi
# Get the new column name that the script created
col="$(echo "$out" | \
awk '/^pool +alloc +free +read +write +/ {print $8} \
/NAME +STATE +READ +WRITE +CKSUM/ {print $6}')"
if [ -z "$col" ] ; then
log_fail "'$wholecmd' created no new columns"
fi
# Count the number of columns for each vdev. Each script should produce
# at least one new column value. Even if scripts return blank, zpool
# will convert the blank to a '-' to make things awk-able. Normal
# zpool iostat -v output is 7 columns, so if the script ran correctly
# we should see more than that.
if ! newcols=$(echo "$out" | \
awk '/\/dev/{print NF-'$dcols'; if (NF <= '$dcols') {exit 1}}' | \
head -n 1) ; \
then
log_fail "'$wholecmd' didn't create a new column value"
else
log_note "'$wholecmd' passed ($newcols new columns)"
fi
}