[CRIU] [PATCH 4/4] RFC: Make ZDTM run on embedded root filesystems
Andrew Vagin
avagin at parallels.com
Thu Jul 10 13:13:07 PDT 2014
On Thu, Jul 10, 2014 at 11:09:07AM -0400, Christopher Covington wrote:
> Modify the ZDTM script so that it can run on minimalistic root
> filesystems without much more than busybox.
Is it really needed?
>
> Signed-off-by: Christopher Covington <cov at codeaurora.org>
> ---
> test/zdtm.sh | 63 ++++++++++++++++++++++++++----------------------------------
> 1 file changed, 27 insertions(+), 36 deletions(-)
>
> diff --git a/test/zdtm.sh b/test/zdtm.sh
> index 479427a..517f2a4 100755
> --- a/test/zdtm.sh
> +++ b/test/zdtm.sh
> @@ -255,30 +255,7 @@ check_criu()
>
> check_mainstream()
> {
> - local -a ver_arr
> - local ver_str=`uname -r`
> -
> - zdtm_sep "CRIU CHECK"
> -
> - $CRIU check && return 0
> - MAINSTREAM_KERNEL=1
> -
> - cat >&2 <<EOF
> -============================= WARNING =============================
> -Not all features needed for CRIU are merged to upstream kernel yet,
> -so for now we maintain our own branch which can be cloned from:
> -git://git.kernel.org/pub/scm/linux/kernel/git/gorcunov/linux-cr.git
> -===================================================================
> -EOF
> -
> - ver_arr=(`echo ${ver_str//./ }`)
> -
> - [ "${ver_arr[0]}" -gt 3 ] && return 0
> - [[ "${ver_arr[0]}" -eq 3 && "${ver_arr[1]}" -ge 11 ]] && return 0
> -
> - echo "A version of kernel should be greater or equal to 3.11" >&2
> -
> - return 1
> + return 0
You must understand that this patch can't be committed.
> }
>
> exit_callback()
> @@ -364,10 +341,15 @@ start_test()
> {
> local tdir=$1
> local tname=$2
> + local test=$tdir/$tname
> export ZDTM_ROOT
>
> killall -9 $tname > /dev/null 2>&1
> - make -C $tdir $tname.cleanout
> + rm -fr $test.pid \
> + $test.out* \
> + $test.test* \
> + $test.*.test \
> + $test.state
>
> unset ZDTM_UID
> unset ZDTM_GID
> @@ -389,25 +371,34 @@ start_test()
> ZDTM_ROOT=`readlink -f $ZDTM_ROOT`
> mount --bind . $ZDTM_ROOT || return 1
> fi
> - construct_root $ZDTM_ROOT $tdir/$tname || return 1
> + construct_root $ZDTM_ROOT $test || return 1
> export ZDTM_NEWNS=1
> export ZDTM_PIDFILE=$TPID
> cd $ZDTM_ROOT
> rm -f $ZDTM_PIDFILE
> fi
>
> - if ! make -C $tdir $tname.pid; then
> - echo ERROR: fail to start $tdir/$tname
> + local args=`$test --help 2>&1 | sed -nr \
> + -e "s%.*(--pidfile=).*%\1$test.pid%p" \
> + -e "s%.*(--outfile=).*%\1$test.out%p" \
> + -e "s%.*(--dirname=).*%\1$test.dir.test%p" \
> + -e "s%.*(--envname=).*%\1ENV_00_TEST%p" \
> + -e "s%.*(--filename=).*%\1$test.test%p"`
> +
> + $test $args
> + local retcode=$?
> + [ $retcode -eq 0 ] || {
> + echo ERROR: $test returned $retcode
> return 1
> - fi
> + }
>
> [ -z "$ZDTM_ROOT" ] || cd -
>
> PID=`cat "$TPID"` || return 1
> - if ! ps -p $PID ; then
> - echo "Test failed to start"
> + kill -0 $PID || {
> + echo ERROR: $test failed to start
> return 1
> - fi
> + }
> }
>
> stop_test()
> @@ -423,7 +414,7 @@ save_fds()
>
> save_maps()
> {
> - cat /proc/$1/maps | python maps.py > $2
> + cat /proc/$1/maps > $2
> }
>
> diff_maps()
> @@ -519,7 +510,7 @@ EOF
> local cpt_args=
> local dump_only=
> local dump_cmd="dump"
> - ddump=`readlink -fm dump/$tname/$PID/$i`
> + ddump=dump/$tname/$PID/$i
> DUMP_PATH=$ddump
> echo Dump $PID
> mkdir -p $ddump
> @@ -611,7 +602,7 @@ EOF
> for i in `seq 5`; do
> save_fds $PID $ddump/restore.fd
> diff_fds $ddump/dump.fd $ddump/restore.fd && break
> - sleep 0.2
> + sleep 2
> done
> [ $i -eq 5 ] && return 2
>
> @@ -889,7 +880,7 @@ else
> pattern=$1
> fi
>
> - for t in $(echo "$TEST_LIST" | grep -x "$pattern"); do
> + for t in $(echo "$TEST_LIST" | grep "^$pattern$"); do
> run_test $t || case_error $t
> done
>
> --
> Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> hosted by the Linux Foundation.
>
> _______________________________________________
> CRIU mailing list
> CRIU at openvz.org
> https://lists.openvz.org/mailman/listinfo/criu
More information about the CRIU
mailing list