[CRIU] [PATCH] zdtm: add ability to execute non-namespacess tests concurrently

Andrew Vagin avagin at parallels.com
Wed Aug 13 07:50:03 PDT 2014


On Wed, Aug 13, 2014 at 05:43:16PM +0300, Ruslan Kuprieiev wrote:
> 13.08.2014 14:19, Ruslan Kuprieiev пишет:
> >08.08.2014 21:31, Andrey Vagin пишет:
> >>For that zdtm.sh is executed in pidns to avoid pid conflicts.
> >>
> >>Cc: Christopher Covington <cov at codeaurora.org>
> >>Signed-off-by: Andrey Vagin <avagin at openvz.org>
> >>---
> >>  test/Makefile | 10 +++++-----
> >>  test/zdtm.sh  | 21 +++++++++++++++++++++
> >>  2 files changed, 26 insertions(+), 5 deletions(-)
> >>
> >>diff --git a/test/Makefile b/test/Makefile
> >>index 351b37b..5d04805 100644
> >>--- a/test/Makefile
> >>+++ b/test/Makefile
> >>@@ -16,11 +16,9 @@ other: .FORCE
> >>          $(MAKE) -C $$t run || break;    \
> >>      done                    \
> >>  -zdtm: .FORCE
> >>+zdtm: .FORCE
> >>      $(MAKE) zdtm_ns
> >>-    for t in $(shell echo "$(TST)" | tr ' ' '\n' | grep -Pv $(EXP)); do
> >>\
> >>-        $(MAKE) $$t || break;    \
> >>-    done
> >>+    $(MAKE) zdtm_nons
> >>  .PHONY: zdtm
> >>    fault-injection: .FORCE
> >>@@ -28,7 +26,9 @@ fault-injection: .FORCE
> >>  .PHONY: fault-injection
> >>    zdtm_ns: $(shell echo "$(TST)" | tr ' ' '\n' | grep -P $(EXP))
> >>+zdtm_nons: $(shell echo "$(TST)" | tr ' ' '\n' | grep -vP $(EXP))
> >>+
> >>  $(TST):
> >>-    ./zdtm.sh ${ZDTM_ARGS} $(@) &> $(subst /,_,$@).log || \
> >>+    ./zdtm.sh --ct ${ZDTM_ARGS} $(@) &> $(subst /,_,$@).log || \
> >>      { flock Makefile cat $(subst /,_,$@).log; exit 1; }
> >>  .PHONY: zdtm_ns
> >>diff --git a/test/zdtm.sh b/test/zdtm.sh
> >>index d1a710d..b6c8095 100755
> >>--- a/test/zdtm.sh
> >>+++ b/test/zdtm.sh
> >>@@ -762,6 +762,7 @@ Options:
> >>      -P : Make pre-dump instead of dump on all iterations except the
> >>last one
> >>      -s : Make iterative snapshots. Only the last one will be checked.
> >>      --auto-dedup : Make auto-dedup on restore. Check sizes of pages
> >>imges, it must be zero.
> >>+    --ct : re-execute $0 in a container
> >>  EOF
> >>  }
> >>  @@ -868,6 +869,26 @@ while :; do
> >>          usage
> >>          exit 0
> >>          ;;
> >>+      --ct)
> >>+        [ -z "$ZDTM_SH_IN_CT" ] && {
> >>+            export ZDTM_SH_IN_CT=1
> >>+            shift
> >>+            args="$@"
> >>+            # pidns is used to avoid conflicts
> >>+            # mntns is used to mount /proc
> >>+            # net is used to avoid conflicts of parasite sockets
> >>+            unshare --pid --mount --ipc --net -- bash -c "
> >>+
> >
> >On ubuntu server 14.04 "make test" leads to error "unshare: unrecognized
> >option '--pid'".
> >
> 
> Same issue on desktop version. unshare from util-linux package doesn't have
> option '--pid'.

Pls, look at "[CRIU] [PATCH] zdtm: add a small program to create a zdtm
container".

> 
> >>                (
> >>+                    ip link set up dev lo &&
> >>+                    mount --make-rprivate / &&
> >>+                    umount -l /proc &&
> >>+                    mount -t proc proc /proc/ &&
> >>+                    ./zdtm.sh $args
> >>+                )"
> >>+            exit
> >>+        }
> >>+        shift
> >>+        ;;
> >>        -*)
> >>          echo "Unrecognized option $1, aborting!" 1>&2
> >>          usage
> >
> 


More information about the CRIU mailing list