#
# 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
}
