[CRIU] [PATCH] zdtm: add ability to execute non-namespacess tests concurrently
Andrey Vagin
avagin at openvz.org
Fri Aug 8 11:31:41 PDT 2014
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 "
+ (
+ 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
--
1.9.3
More information about the CRIU
mailing list