Re: [PATCH 10/25] xfstests: include test subdirectory support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Looks OK.

Reviewed-by: Phil White <pwhite@xxxxxxx>

On Fri, Mar 15, 2013 at 11:27:54PM +1100, Dave Chinner wrote:
> From: Dave Chinner <dchinner@xxxxxxxxxx>
> 
> Create a specific tests/ subdirectory to hold all the tests so they
> are no longer need to be in the top level directory. This patch does
> not move any tests there, however, and that will be done in
> subsequent commits.
> 
> The tests/ subdir will have it's own subdirectories for different
> classes of tests. Initially, there will be a per-FSTYP subdirectory
> for filesytsem specific tests, and a generic directory for tests
> that span multiple filesystems.
> 
> Each class will have it's own group file to indicate what groups the
> tests belong to, and these will be parsed appropriately by the high
> level check script to build the test list.
> 
> The change in parsing results in the test output also emitting the
> path to the test as well as the name of the test, instead of just a
> raw number. This allows duplicate test names in the sudirecotries to
> be unambiguous when the summary is written out.
> 
> Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
> ---
>  check               |   43 ++++++++++++++++++++++++++++---------------
>  tests/generic/group |    5 +++++
>  2 files changed, 33 insertions(+), 15 deletions(-)
>  create mode 100644 tests/generic/group
> 
> diff --git a/check b/check
> index b93316a..da2611a 100755
> --- a/check
> +++ b/check
> @@ -36,6 +36,8 @@ here=`pwd`
>  FSTYP=xfs
>  
>  SUPPORTED_TESTS="[0-9][0-9][0-9] [0-9][0-9][0-9][0-9]"
> +TEST_GROUP_DIR="tests"
> +GENERIC_GROUP_DIR="$TEST_GROUP_DIR/generic"
>  
>  # generic initialization
>  iam=check
> @@ -84,11 +86,15 @@ _setenvironment()
>  get_group_list()
>  {
>  	grp=$1
> -
> -	grpl=$(sed -n < group \
> -		       -e 's/#.*//' \
> -		       -e 's/$/ /' \
> -		       -e "/^[0-9][0-9][0-9].* $grp /"'{ s/ .*//p }')
> +	dirs=". $GENERIC_GROUP_DIR"
> +
> +	for d in $dirs; do
> +		l=$(sed -n < $d/group \
> +			-e 's/#.*//' \
> +			-e 's/$/ /' \
> +			-e "s;\(^[0-9][0-9][0-9]\).* $grp .*;$d/\1;p")
> +		grpl="$grpl $l"
> +	done
>  	echo $grpl
>  }
>  
> @@ -290,7 +296,7 @@ END	{ if (NR > 0) {
>  
>  	echo "" >>check.log
>  	date >>check.log
> -	echo $list | fmt | sed -e 's/^/    /' >>check.log
> +	echo $list | fmt | sed -e 's/^/    /' -e 's;tests/;;g' >>check.log
>  	$interrupt && echo "Interrupted!" >>check.log
>          
>          if [ ! -z "$n_try" -a $n_try != 0 ]
> @@ -368,7 +374,12 @@ _check_test_fs
>  for seq in $list
>  do
>      err=false
> -    echo -n "$seq"
> +
> +    # the filename for the test and the name output are different.
> +    # we don't include the tests/ directory in the name output.
> +    seqnum=`echo $seq | sed -e 's;tests/;;'`
> +
> +    echo -n "$seqnum"
>  
>      if $showme
>      then
> @@ -381,7 +392,9 @@ do
>  	# really going to try and run this one
>  	#
>  	rm -f $seq.out.bad
> -	lasttime=`sed -n -e "/^$seq /s/.* //p" <check.time`
> +
> +	# slashes now in names, sed barfs on them so use grep
> +	lasttime=`grep -w ^$seq check.time | awk '// {print $2}'`
>  	if [ "X$lasttime" != X ]; then
>  		echo -n " ${lasttime}s ..."
>  	else
> @@ -392,7 +405,7 @@ do
>  	start=`_wallclock`
>  	$timestamp && echo -n "	["`date "+%T"`"]"
>  	[ ! -x $seq ] && chmod u+x $seq # ensure we can run it
> -	$LOGGER_PROG "run xfstest $seq"
> +	$LOGGER_PROG "run xfstest $seqnum"
>  	./$seq >$tmp.rawout 2>&1
>  	sts=$?
>  	$timestamp && _timestamp
> @@ -411,9 +424,9 @@ do
>  	if [ -f $seq.notrun ]
>  	then
>  	    $timestamp || echo -n " [not run] "
> -	    $timestamp && echo " [not run]" && echo -n "	$seq -- "
> +	    $timestamp && echo " [not run]" && echo -n "	$seqnum -- "
>  	    cat $seq.notrun
> -	    notrun="$notrun $seq"
> +	    notrun="$notrun $seqnum"
>  	else
>  	    if [ $sts -ne 0 ]
>  	    then
> @@ -431,7 +444,7 @@ do
>  		    then
>  			:
>  		    else
> -			echo "$seq `expr $stop - $start`" >>$tmp.time
> +			echo "$seqnum `expr $stop - $start`" >>$tmp.time
>  			echo -n " `expr $stop - $start`s"
>  		    fi
>  		    echo ""
> @@ -459,18 +472,18 @@ do
>      #
>      if $err
>      then
> -	bad="$bad $seq"
> +	bad="$bad $seqnum"
>  	n_bad=`expr $n_bad + 1`
>  	quick=false
>      fi
>      if [ ! -f $seq.notrun ]
>      then
> -	try="$try $seq"
> +	try="$try $seqnum"
>  	n_try=`expr $n_try + 1`
>          _check_test_fs
>      fi
>      
> -    seq="after_$seq"
> +    seq="after_$seqnum"
>  done
>  
>  interrupt=false
> diff --git a/tests/generic/group b/tests/generic/group
> new file mode 100644
> index 0000000..4e01f0c
> --- /dev/null
> +++ b/tests/generic/group
> @@ -0,0 +1,5 @@
> +# QA groups control file
> +# Defines test groups and nominal group owners
> +# - do not start group names with a digit
> +# - comment line before each group is "new" description
> +#
> -- 
> 1.7.10.4
> 
> _______________________________________________
> xfs mailing list
> xfs@xxxxxxxxxxx
> http://oss.sgi.com/mailman/listinfo/xfs

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs




[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux