[LTP] [PATCH v3] runltp: add -R option for randomize test order

Li Wang liwang@redhat.com
Sun Sep 25 11:38:07 CEST 2016


On Sat, Sep 24, 2016 at 8:35 PM, Zorro Lang <zlang@redhat.com> wrote:
> Generally we write test entries into runtests/${testfile}, then
> runltp reads and runs lines sequentially everytime, nearly no one
> will change the test order.
>
> Recently we find bugs by change the test order,different test
> combination maybe find more bugs. So I add this new option -R to
> randomize test order.
>
> Signed-off-by: Zorro Lang <zlang@redhat.com>
> ---
>
> V2 use 'sort -R' to instead of 'randlines.awk'.
> V3 remove change log and someone useless comment
>
> Thanks,
> Zorro
>
>  runltp | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/runltp b/runltp
> index bb2e5d8..33e23ab 100755
> --- a/runltp
> +++ b/runltp
> @@ -153,6 +153,7 @@ usage()
>      -p              Human readable format logfiles.
>      -q              Print less verbose output to screen.
>      -r LTPROOT      Fully qualified path where testsuite is installed.
> +    -R              Randomize test order.
>      -s PATTERN      Only run test cases which match PATTERN.
>      -S SKIPFILE     Skip tests specified in SKIPFILE
>      -t DURATION     Execute the testsuite for given duration. Examples:
> @@ -213,12 +214,13 @@ main()
>      local EMAIL_TO=""
>      local TAG_RESTRICT_STRING=""
>      local PAN_COMMAND=""
> +    local RANDOMRUN=0
>      local DEFAULT_FILE_NAME_GENERATION_TIME=`date +"%Y_%m_%d-%Hh_%Mm_%Ss"`
>      local scenfile=
>
>      version_date=$(cat "$LTPROOT/Version")
>
> -    while getopts a:c:C:T:d:D:f:F:ehi:I:K:g:l:m:M:Nno:pqr:s:S:t:T:w:x:b:B:z:Z: arg
> +    while getopts a:c:C:T:d:D:f:F:ehi:I:K:g:l:m:M:Nno:pqr:Rs:S:t:T:w:x:b:B:z:Z: arg
>      do  case $arg in
>          a)  EMAIL_TO=$OPTARG
>              ALT_EMAIL_OUT=1;;
> @@ -410,6 +412,8 @@ main()
>
>          r)  LTPROOT=$OPTARG;;
>
> +        R)  RANDOMRUN=1;;
> +
>          s)  TAG_RESTRICT_STRING=$OPTARG;;
>
>         S)  case $OPTARG in
> @@ -740,6 +744,11 @@ main()
>           done
>      fi
>
> +    if [ "$RANDOMRUN" != "0" ]; then
> +        sort -R ${TMP}/alltests > ${TMP}/alltests.temp
> +        cat ${TMP}/alltests.temp > ${TMP}/alltests

How about combine them in one line?

  shuf ${TMP}/alltests -o ${TMP}/alltests
or,
  sort -R ${TMP}/alltests -o ${TMP}/alltests

> +    fi
> +
>      [ ! -z "$QUIET_MODE" ] && { echo "INFO: Test start time: $(date)" ; }
>      PAN_COMMAND="${LTPROOT}/bin/ltp-pan $QUIET_MODE -e -S $INSTANCES $DURATION -a $$ \
>      -n $$ $PRETTY_PRT -f ${TMP}/alltests $LOGFILE $OUTPUTFILE $FAILCMDFILE $TCONFCMDFILE"
> --
> 2.7.4
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp



-- 
Regards,
Li Wang
Email: liwang@redhat.com


More information about the ltp mailing list