Re: [PATCH 1/4] Add support for saving log files in test script

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

 



On Fri, 25 May 2012 17:24:05 +0200 Jes.Sorensen@xxxxxxxxxx wrote:

> From: Jes Sorensen <Jes.Sorensen@xxxxxxxxxx>
> 
> --logdir= specifies where to save, if different from default, and
> --save-logs tells test to save all log files.
> 
> Signed-off-by: Jes Sorensen <Jes.Sorensen@xxxxxxxxxx>
> ---
>  test |   42 ++++++++++++++++++++++++++++++++++++------
>  1 files changed, 36 insertions(+), 6 deletions(-)
> 
> diff --git a/test b/test
> index 7882586..c7eb069 100755
> --- a/test
> +++ b/test
> @@ -16,6 +16,10 @@ then
>     echo >&2 "test: $mdadm isn't usable."
>  fi
>  
> +testdir="tests"
> +logdir="$testdir/logs"
> +logsave=0
> +
>  # Check whether to run multipath tests
>  modprobe multipath 2> /dev/null
>  if grep -s 'Personalities : .*multipath' > /dev/null /proc/mdstat ; then
> @@ -204,6 +208,7 @@ rotest() {
>  
>  do_test() {
>    _script=$1
> +  _basename=`basename $_script`
>    if [ -f "$_script" ]
>    then
>      rm -f $targetdir/stderr
> @@ -215,8 +220,17 @@ do_test() {
>      # namespace, but cannot change it.
>      echo -ne "$_script... "
>      if ( set -ex ; . $_script )  2> $targetdir/log
> -    then echo "succeeded"
> -    else echo "FAILED - see $targetdir/log for details"
> +    then
> +      echo "succeeded"
> +      _fail=0
> +    else
> +      echo "FAILED - see $targetdir/log for details"
> +      _fail=1
> +    fi
> +    if [ "$savelogs" == "1" ]; then
> +      cp $targetdir/log $logdir/$_basename.log
> +    fi
> +    if [ "$_fail" == "1" ]; then
>        exit 1
>      fi
>    fi
> @@ -224,7 +238,7 @@ do_test() {
>  
>  do_help() {
>    echo "Usage: "
> -  echo " $0 [--tests=<test1,test2,..>] [--disable-multipath] [setup] [prefix]"
> +  echo " $0 [--tests=<test1,test2,..>] [--disable-multipath] [--logdir] [--save-logs] [setup] [prefix]"
>  }
>  
>  parse_args() {
> @@ -241,6 +255,18 @@ parse_args() {
>      --tests=*)
>        TESTLIST=`expr "x$i" : 'x[^=]*=\(.*\)' | sed -e 's/,/ /g'`
>        ;;
> +    --logdir=*)
> +      logdir=`expr "x$i" : 'x[^=]*=\(.*\)'`
> +      ;;
> +    --save-logs)
> +      savelogs=1
> +      if [ ! -d $logdir ] ; then
> +        mkdir $logdir
> +        if [ $? -ne 0 ] ; then
> +	  exit 1;
> +	fi
> +      fi
> +      ;;
>      --disable-multipath)
>        unset MULTIPATH
>        ;;
> @@ -259,13 +285,17 @@ done
>  
>  parse_args $@
>  
> +if [ "$savelogs" == "1" ]; then
> +  echo "Saving logs to $logdir"
> +fi
> +
>  if [ "x$TESTLIST" != "x" ]; then
> -  for script in $TESTLIST
> +  for script in $testdir/$TESTLIST

That's not really right, is it?
I fixed it to instead change...

>    do
> -    do_test tests/$script
> +    do_test $script

..this to
       do_text $testdir/$script

and applied.

Thanks,
NeilBrown


>    done
>  else
> -  for script in tests/$prefix tests/$prefix*[^~]
> +  for script in $testdir/$prefix $testdir/$prefix*[^~]
>    do
>      do_test $script
>    done

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux