[Ocfs2-test-devel] [PATCH 31/59] ocfs2-test: add -t option to run specified testcase

Eric Ren zren at suse.com
Tue Sep 22 03:50:08 PDT 2015


Good improvement!

Reviewed-by: Eric Ren

On Mon, Sep 14, 2015 at 10:44:17AM +0800, Junxiao Bi wrote: 
> Signed-off-by: Junxiao Bi <junxiao.bi at oracle.com>
> ---
>  programs/python_common/multiple_run.sh   |   98 +++++++++++++++++++++---------
>  programs/python_common/single_run-WIP.sh |   97 +++++++++++++++++++++++------
>  2 files changed, 146 insertions(+), 49 deletions(-)
> 
> diff --git a/programs/python_common/multiple_run.sh b/programs/python_common/multiple_run.sh
> index cf82b96..2a064ef 100755
> --- a/programs/python_common/multiple_run.sh
> +++ b/programs/python_common/multiple_run.sh
> @@ -34,6 +34,7 @@ ECHO="`which echo` -e"
>  
>  SUDO="`which sudo` -u root"
>  IFCONFIG_BIN="`which ifconfig`"
> +SED=`which sed`
>  
>  REMOTE_MOUNT_BIN="${BINDIR}/remote_mount.py"
>  REMOTE_UMOUNT_BIN="${BINDIR}/remote_umount.py"
> @@ -61,6 +62,7 @@ FEATURES=
>  JOURNALSIZE=0
>  BLOCKS=0
>  MOUNT_OPTS=
> +TESTCASES=
>  
>  set -o pipefail
>  
> @@ -70,13 +72,14 @@ set -o pipefail
>  f_usage()
>  {
>      echo "usage: `basename ${0}` <-k kerneltarball> <-n nodes> [-i nic] \
> -[-a access_method] [-o logdir] <-d device> <mountpoint path>"
> +[-a access_method] [-o logdir] <-d device> [-t testcases] <mountpoint path>"
>      echo "       -k kerneltarball should be path of tarball for kernel src."
>      echo "       -n nodelist,should be comma separated."
>      echo "       -o output directory for the logs"
>      echo "       -i network interface name to be used for MPI messaging."
>      echo "       -a access method for mpi execution,should be ssh or rsh"
>      echo "       -d device name used for ocfs2 volume."
> +    echo "       -t sepcify testcases to run."
>      echo "       <mountpoint path> path of mountpoint where test will be performed."
>      echo 
>      echo "Eaxamples:"
> @@ -93,7 +96,7 @@ f_getoptions()
>  		exit 1
>  	fi
>  
> -	while getopts "n:d:i:a:o:k:h:" options; do
> +	while getopts "n:d:i:a:o:k:t:h:" options; do
>  		case $options in
>  		n ) NODE_LIST="$OPTARG";;
>  		d ) DEVICE="$OPTARG";;
> @@ -101,6 +104,7 @@ f_getoptions()
>  		a ) ACCESS_METHOD="$OPTARG";;
>  		o ) LOG_DIR="$OPTARG";;
>  		k ) KERNELSRC="$OPTARG";;
> +		t ) TESTCASES="$OPTARG";;
>  		h ) f_usage
>  		    exit 1;;
>                  * ) f_usage
> @@ -191,6 +195,20 @@ f_setup()
>  
>          RUN_LOGFILE="`dirname ${LOG_DIR}`/`basename ${LOG_DIR}`/multiple-run-\
>  `uname -m`-`date +%F-%H-%M-%S`.log"
> +
> +	if [ -z $TESTCASES ];then
> +		TESTCASES="all"
> +	fi
> +
> +	SUPPORTED_TESTCASES="all xattr inline reflink write_append_truncate multi_mmap create_racer flock_unit cross_delete open_delete lvb_torture"
> +	for cas in ${TESTCASES}; do
> +		echo ${SUPPORTED_TESTCASES} | grep -sqw $cas
> +		if [ $? -ne 0 ]; then
> +			echo "testcase [${cas}] not supported."
> +			echo "supported testcases: [${SUPPORTED_TESTCASES}]"
> +			exit 1
> +		fi
> +	done
>  }
>  
>  LogRC()
> @@ -456,39 +474,61 @@ f_setup $*
>  STARTRUN=$(date +%s)
>  ${ECHO} "`date` - Starting Multiple Nodes Regress test" > ${LOGFILE}
>  
> -START=$(date +%s)
> -run_xattr_test 
> -
> -START=$(date +%s)
> -run_inline_test
> -
> -START=$(date +%s)
> -run_reflink_test
> -
> -for BLOCKSIZE in 512 1024 4096;do
> -	for CLUSTERSIZE in 4096 32768 1048576;do
> -		${ECHO} "Tests with \"-b ${BLOCKSIZE} -C ${CLUSTERSIZE}\"" | \
> -${TEE_BIN} -a ${LOGFILE}
> +for tc in `${ECHO} ${TESTCASES} | ${SED} "s:,: :g"`; do
> +	if [ "$tc"X = "xattr"X -o "$tc"X = "all"X ]; then
>  		START=$(date +%s)
> -		run_write_append_truncate_test
> -
> -		START=$(date +%s)
> -		run_multi_mmap_test
> -
> -		START=$(date +%s)
> -		run_create_racer_test
> -
> -		START=$(date +%s)
> -		run_flock_unit_test
> +		run_xattr_test
> +	fi
>  
> +	if [ "$tc"X = "inline"X -o "$tc"X = "all"X ]; then
>  		START=$(date +%s)
> -		run_cross_delete_test
> +		run_inline_test
> +	fi
>  
> +	if [ "$tc"X = "reflink"X -o "$tc"X = "all"X ]; then
>  		START=$(date +%s)
> -		run_open_delete_test
> +		run_reflink_test
> +	fi
>  
> -		START=$(date +%s)
> -		run_lvb_torture_test
> +	for BLOCKSIZE in 512 1024 4096;do
> +		for CLUSTERSIZE in 4096 32768 1048576;do
> +			${ECHO} "Tests with \"-b ${BLOCKSIZE} -C ${CLUSTERSIZE}\"" | \
> +				${TEE_BIN} -a ${LOGFILE}
> +			if [ "$tc"X = "write_append_truncate"X -o "$tc"X = "all"X ]; then
> +				START=$(date +%s)
> +				run_write_append_truncate_test
> +			fi
> +
> +			if [ "$tc"X = "multi_mmap"X -o "$tc"X = "all"X ]; then
> +				START=$(date +%s)
> +				run_multi_mmap_test
> +			fi
> +
> +			if [ "$tc"X = "create_racer"X -o "$tc"X = "all"X ]; then
> +				START=$(date +%s)
> +				run_create_racer_test
> +			fi
> +
> +			if [ "$tc"X = "flock_unit"X -o "$tc"X = "all"X ]; then
> +				START=$(date +%s)
> +				run_flock_unit_test
> +			fi
> +
> +			if [ "$tc"X = "cross_delete"X -o "$tc"X = "all"X ]; then
> +				START=$(date +%s)
> +				run_cross_delete_test
> +			fi
> +
> +			if [ "$tc"X = "open_delete"X -o "$tc"X = "all"X ]; then
> +				START=$(date +%s)
> +				run_open_delete_test
> +			fi
> +
> +			if [ "$tc"X = "lvb_torture"X -o "$tc"X = "all"X ]; then
> +				START=$(date +%s)
> +				run_lvb_torture_test
> +			fi
> +		done
>  	done
>  done
>  
> diff --git a/programs/python_common/single_run-WIP.sh b/programs/python_common/single_run-WIP.sh
> index b5b4354..0d700cd 100755
> --- a/programs/python_common/single_run-WIP.sh
> +++ b/programs/python_common/single_run-WIP.sh
> @@ -18,6 +18,7 @@ SEQ=`which seq`
>  SUDO="`which sudo` -u root"
>  WGET=`which wget`
>  WHOAMI=`which whoami`
> +SED=`which sed`
>  
>  DWNLD_PATH="http://oss.oracle.com/~smushran/ocfs2-test"
>  KERNEL_TARBALL="linux-kernel.tar.gz"
> @@ -931,17 +932,18 @@ run_backup_super()
>  
>  usage()
>  {
> -	${ECHO} "usage: ${APP} [-k kerneltarball] -m mountpoint -l logdir -d device"
> +	${ECHO} "usage: ${APP} [-k kerneltarball] -m mountpoint -l logdir -d device [-t testcases]"
>  	exit 1
>  }
>  
> -while getopts "d:m:k:l:h?" args
> +while getopts "d:m:k:l:t:h:?" args
>  do
>  	case "$args" in
>  		d) DEVICE="$OPTARG";;
>  		m) MOUNTPOINT="$OPTARG";;
>  		k) KERNELSRC="$OPTARG";;
>  		l) OUTDIR="$OPTARG";;
> +		t) TESTCASES="$OPTARG";;
>      		h) usage;;
>      		?) usage;;
>    	esac
> @@ -968,6 +970,21 @@ if [ -z ${OUTDIR} ]; then
>  	usage
>  fi
>  
> +if [ -z ${TESTCASES} ]; then
> +	TESTCASES="all"
> +fi
> +
> +SUPPORTED_TESTCASES="all create_and_open directaio fillverifyholes renamewriterace aiostress\
> +  filesizelimits mmaptruncate buildkernel splice sendfile mmap reserve_space inline xattr reflink mkfs tunefs backup_super"
> +for cas in ${TESTCASES}; do
> +	echo ${SUPPORTED_TESTCASES} | grep -sqw $cas
> +	if [ $? -ne 0 ]; then
> +		echo "testcase [${cas}] not supported."
> +		echo "supported testcases: [${SUPPORTED_TESTCASES}]"
> +		exit 1
> +	fi
> +done
> +
>  RUNDATE=`${DATE} +%F_%H:%M`
>  LOGDIR=${OUTDIR}/${RUNDATE}
>  LOGFILE=${LOGDIR}/single_run.log
> @@ -989,43 +1006,83 @@ log_message "*** Start Single Node test ***"
>  
>  ${ECHO} "Output log is ${LOGFILE}"
>  
> -run_create_and_open ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +for tc in `${ECHO} ${TESTCASES} | ${SED} "s:,: :g"`; do
>  
> -run_directaio ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	if [ "$tc"X = "create_and_open"X -o "$tc"X = "all"X ];then
> +		run_create_and_open ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	fi
>  
> -run_fillverifyholes ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	if [ "$tc"X = "directaio"X -o "$tc"X = "all"X ];then
> +		run_directaio ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	fi
>  
> -run_renamewriterace ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	if [ "$tc"X = "fillverifyholes"X -o "$tc"X = "all"X ];then
> +		run_fillverifyholes ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	fi
>  
> -run_aiostress ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	if [ "$tc"X = "renamewriterace"X -o "$tc"X = "all"X ];then
> +		run_renamewriterace ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	fi
>  
> -run_filesizelimits ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	if [ "$tc"X = "aiostress"X -o "$tc"X = "all"X ];then
> +		run_aiostress ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	fi
> +
> +	if [ "$tc"X = "filesizelimits"X -o "$tc"X = "all"X ];then
> +		run_filesizelimits ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	fi
>  
> -run_mmaptruncate ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	if [ "$tc"X = "mmaptruncate"X -o "$tc"X = "all"X ];then
> +		run_mmaptruncate ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	fi
>  
> -run_buildkernel ${LOGDIR} ${DEVICE} ${MOUNTPOINT} ${KERNELSRC}
> +	if [ "$tc"X = "buildkernel"X -o "$tc"X = "all"X ];then
> +		run_buildkernel ${LOGDIR} ${DEVICE} ${MOUNTPOINT} ${KERNELSRC}
> +	fi
>  
> -run_splice ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	if [ "$tc"X = "splice"X -o "$tc"X = "all"X ];then
> +		run_splice ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	fi
>  
> -run_sendfile ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	if [ "$tc"X = "sendfile"X -o "$tc"X = "all"X ];then
> +		run_sendfile ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	fi
>  
> -run_mmap ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	if [ "$tc"X = "mmap"X -o "$tc"X = "all"X ];then
> +		run_mmap ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	fi
>  
> -run_reserve_space ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	if [ "$tc"X = "reserve_space"X -o "$tc"X = "all"X ];then
> +		run_reserve_space ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	fi
>  
> -run_inline_data ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	if [ "$tc"X = "inline"X -o "$tc"X = "all"X ];then
> +		run_inline_data ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	fi
>  
> -run_xattr_test ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	if [ "$tc"X = "xattr"X -o "$tc"X = "all"X ];then
> +		run_xattr_test ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	fi
>  
> -run_reflink_test ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	if [ "$tc"X = "reflink"X -o "$tc"X = "all"X ];then
> +		run_reflink_test ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	fi
>  
>  # For tools test.
>  
> -run_mkfs ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	if [ "$tc"X = "mkfs"X -o "$tc"X = "all"X ];then
> +		run_mkfs ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	fi
>  
> -run_tunefs ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	if [ "$tc"X = "tunefs"X -o "$tc"X = "all"X ];then
> +		run_tunefs ${LOGDIR} ${DEVICE} ${MOUNTPOINT}
> +	fi
>  
> -run_backup_super ${LOGDIR} ${DEVICE}
> +	if [ "$tc"X = "backup_super"X -o "$tc"X = "all"X ];then
> +		run_backup_super ${LOGDIR} ${DEVICE}
> +	fi
> +
> +done
>  
>  ENDRUN=$(date +%s)
>  
> -- 
> 1.7.9.5
> 
> 
> _______________________________________________
> Ocfs2-test-devel mailing list
> Ocfs2-test-devel at oss.oracle.com
> https://oss.oracle.com/mailman/listinfo/ocfs2-test-devel
> 



More information about the Ocfs2-test-devel mailing list