[CRIU] [PATCH v2] test/zdtm: add option -n for batch test

Andrew Vagin avagin at parallels.com
Tue Aug 13 15:05:59 EDT 2013


On Tue, Aug 13, 2013 at 11:26:51AM -0700, Yicheng Qin wrote:
> I doubt whether I need to umount and remove ZDTM_ROOT.
> 
> ZDTM_ROOT is mounted when calling start_test() at the first time, and is
> unmounted at exit_callback() when the script is over. So it is only mounted
> once in all.
> 
> In batch-test mode, when some test failed, we just want to cleanup its related
> resources. Based on the fact that ZDTM_TEST could be used still, I think I
> should reserve it.

And you are right here too, thanks.

> 
> After consideration, it seems that %.cleanout is unnecessary and may delete
> some import debug info. I will delete that one.
> 
> 
> On Tue, Aug 13, 2013 at 8:34 AM, Andrew Vagin <avagin at parallels.com> wrote:
> 
>     On Tue, Aug 13, 2013 at 08:20:32AM -0700, Yicheng Qin wrote:
>     > It is set in case_error().
>     > Whenever it calls case_error, ZDTM_FAILED will be set to 1.
> 
>     Ok. It's my fault. I thought that this patch adds ZDTM_FAILED.
> 
>     >
>     > It is a variable that has been in the script. The call of it is as
>     follows in
>     > exit_callback():
>     >
>     >
>     > [[ -n "$ZDTM_FAILED" && -n "$DUMP_ARCHIVE" ]] && tar -czf $DUMP_ARCHIVE
>     dump
>     >
>     >
>     > I think it is definitely used to indicate whether zdtm tests failed or
>     not.
>     >
>     >
>     >
>     > On Tue, Aug 13, 2013 at 2:38 AM, Andrew Vagin <avagin at parallels.com>
>     wrote:
>     >
>     >     On Tue, Aug 13, 2013 at 01:34:02AM -0700, Yicheng Qin wrote:
>     >     > In batch-test mode, the script skips failed individual tests
>     >     > instead of exiting. This ensures that all zdtm tests can be run
>     >     > in one pass, which provides better overview of test result.
>     >     >
>     >     > Signed-off-by: Yicheng Qin <yichengq at google.com>
>     >     > ---
>     >     > Changelog since v1:
>     >     > - add option -n
>     >     >
>     >     >  test/zdtm.sh | 34 +++++++++++++++++++++++++++++++---
>     >     >  1 file changed, 31 insertions(+), 3 deletions(-)
>     >     >
>     >     > diff --git a/test/zdtm.sh b/test/zdtm.sh
>     >     > index 8881b3a..2ca48f5 100755
>     >     > --- a/test/zdtm.sh
>     >     > +++ b/test/zdtm.sh
>     >     > @@ -168,6 +168,7 @@ PAGE_SERVER=0
>     >     >  PS_PORT=12345
>     >     >  TCPDUMP_PID=
>     >     >  COMPILE_ONLY=0
>     >     > +BATCH_TEST=0
>     >     >
>     >     >  check_criu()
>     >     >  {
>     >     > @@ -439,7 +440,11 @@ EOF
>     >     >               # with some error code, or checkpoint is complete but
>     >     return
>     >     >               # code is non-zero because of post dump action.
>     >     >               if [ "$retcode" -ne 0 ] && [[ "$retcode" -ne 32 || -z
>     >     "$dump_only" ]]; then
>     >     > -                     echo WARNING: $tname returned $retcode and
>     left
>     >     running for debug needs
>     >     > +                     if [ $BATCH_TEST -eq 0 ]; then
>     >     > +                             echo WARNING: $tname returned
>     $retcode and
>     >     left running for debug needs
>     >     > +                     else
>     >     > +                             echo WARNING: $tname failed and
>     returned
>     >     $retcode
>     >     > +                     fi
>     >     >                       return 1
>     >     >               fi
>     >     >
>     >     > @@ -556,7 +561,15 @@ case_error()
>     >     >
>     >     >       echo "==================== ERROR OVER ===================="
>     >     >  )
>     >     > -     exit 1
>     >     > +     if [ $BATCH_TEST -eq 0 ]; then
>     >     > +             exit 1
>     >     > +     else
>     >     > +             # cleanout failed test to prepare for next one
>     >     > +             local tname=`basename $test`
>     >     > +             local tdir=`dirname $test`
>     >     > +             killall -9 $tname > /dev/null 2>&1
>     >     > +             make -C $tdir $tname.cleanout
>     >     > +     fi
>     >     >  }
>     >     >
>     >     >  checkout()
>     >     > @@ -635,6 +648,11 @@ while :; do
>     >     >               shift
>     >     >               continue
>     >     >       fi
>     >     > +     if [ "$1" = "-n" ]; then
>     >     > +             BATCH_TEST=1
>     >     > +             shift
>     >     > +             continue
>     >     > +     fi
>     >     >       break;
>     >     >  done
>     >     >
>     >     > @@ -661,6 +679,7 @@ Options:
>     >     >       -t : mount tmpfs for dump files
>     >     >       -a <FILE>.tar.gz : save archive with dump files and logs
>     >     >       -g : Generate executables only
>     >     > +     -n : Batch test
>     >     >  EOF
>     >     >  elif [ "${1:0:1}" = '-' ]; then
>     >     >       echo "unrecognized option $1"
>     >     > @@ -688,6 +707,15 @@ else
>     >     >       for t in $(echo "$IPC_TEST_LIST" | grep -x "$pattern"); do
>     >     >               run_test $t -n ipc || case_error $t
>     >     >       done
>     >     > +
>     >     > +     if [ $COMPILE_ONLY -eq 0 ]; then
>     >     > +             if [ -n "$ZDTM_FAILED" ]; then
>     >
>     >     where is ZDTM_FAILED set?
>     >
>     >     > +                     echo ZDTM tests FAIL.
>     >     > +             else
>     >     > +                     echo ZDTM tests PASS.
>     >     > +             fi
>     >     > +     fi
>     >     >  fi
>     >     >
>     >     > -[ -n "$TMP_TREE" ] && rm -rf $TMP_TREE || exit 0
>     >     > +[ -n "$TMP_TREE" ] && rm -rf $TMP_TREE
>     >     > +[ -n "$ZDTM_FAILED" ] && exit 1
>     >     > --
>     >     > 1.8.3
>     >     >
>     >     > _______________________________________________
>     >     > CRIU mailing list
>     >     > CRIU at openvz.org
>     >     > https://lists.openvz.org/mailman/listinfo/criu
>     >
>     >
> 
> 


More information about the CRIU mailing list