[CRIU] [PATCH 1/2] zdtm.sh: don't generate a test list if a test is specified

Andrey Vagin avagin at openvz.org
Fri Jan 23 03:20:19 PST 2015


Signed-off-by: Andrey Vagin <avagin at openvz.org>
---
 test/zdtm.sh | 569 ++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 287 insertions(+), 282 deletions(-)

diff --git a/test/zdtm.sh b/test/zdtm.sh
index 709e227..71e0760 100755
--- a/test/zdtm.sh
+++ b/test/zdtm.sh
@@ -18,291 +18,299 @@ ZP="zdtm/live"
 
 source $(readlink -f `dirname $0`/env.sh) || exit 1
 
-TEST_LIST="
-static/pipe00
-static/pipe01
-static/pipe02
-static/busyloop00
-static/cwd00
-static/cwd01
-static/cwd02
-static/env00
-static/maps00
-static/maps01
-static/maps02
-static/maps04
-static/maps05
-static/mlock_setuid
-static/maps_file_prot
-static/mprotect00
-static/mtime_mmap
-static/sleeping00
-static/write_read00
-static/write_read01
-static/write_read02
-static/write_read10
-static/wait00
-static/vdso00
-static/sched_prio00
-static/sched_policy00
-static/file_shared
-static/file_append
-static/timers
-static/posix_timers
-static/futex
-static/futex-rl
-static/xids00
-static/groups
-static/pthread00
-static/pthread01
-static/umask00
-streaming/pipe_loop00
-streaming/pipe_shared00
-transition/file_read
-static/sockets00
-static/sockets01
-static/sockets02
-static/sock_opts00
-static/sock_opts01
-static/sockets_spair
-static/sockets_dgram
-static/socket_queues
-static/deleted_unix_sock
-static/sk-unix-unconn
-static/pid00
-static/pstree
-static/caps00
-static/cmdlinenv00
-static/socket_listen
-static/socket_listen6
-static/packet_sock
-static/packet_sock_mmap
-static/socket_udp
-static/sock_filter
-static/socket6_udp
-static/socket_udplite
-static/selfexe00
-static/link10
-static/unlink_fstat00
-static/unlink_fstat01
-static/unlink_fstat02
-static/unlink_fstat03
-static/unlink_mmap00
-static/unlink_mmap01
-static/unlink_mmap02
-static/rmdir_open
-static/eventfs00
-static/signalfd00
-static/inotify00
-static/inotify_irmap
-static/fanotify00
-static/unbound_sock
-static/fifo-rowo-pair
-static/fifo-ghost
-static/fifo
-static/fifo_wronly
-static/fifo_ro
-static/unlink_fifo
-static/unlink_fifo_wronly
-static/zombie00
-static/rlimits00
-transition/fork
-transition/fork2
-transition/thread-bomb
-static/pty00
-static/pty01
-static/pty04
-static/tty02
-static/tty03
-static/console
-static/vt
-static/child_opened_proc
-static/cow01
-static/fpu00
-static/fpu01
-static/mmx00
-static/sse00
-static/sse20
-static/pdeath_sig
-static/fdt_shared
-static/file_locks00
-static/file_locks01
-static/file_locks02
-static/file_locks03
-static/file_locks04
-static/file_locks05
-static/sigpending
-static/sigaltstack
-static/sk-netlink
-static/proc-self
-static/grow_map
-static/grow_map02
-static/grow_map03
-static/stopped
-static/chroot
-static/chroot-file
-static/rtc
-transition/maps007
-static/dumpable01
-static/dumpable02
-static/deleted_dev
-"
-
-#
-# Arch specific tests
-if [ $ARCH = "x86_64" ]; then
-	TEST_LIST_ARCH="
-static/vdso01
-"
-fi
-
-TEST_LIST=$TEST_LIST$TEST_LIST_ARCH
-
-# Duplicate list with ns/ prefix
-TEST_LIST=$TEST_LIST$(echo $TEST_LIST | tr ' ' '\n' | sed 's#^#ns/#')
-
-# These ones are not in ns
-TEST_LIST="$TEST_LIST
-static/file_fown
-static/socket-ext
-static/socket-tcp
-static/socket-tcp6
-streaming/socket-tcp
-streaming/socket-tcp6
-static/socket-tcpbuf
-static/socket-tcpbuf-local
-static/socket-tcpbuf6
-static/pty03
-static/mountpoints
-ns/static/session00
-ns/static/session01
-ns/static/tempfs
-ns/static/bind-mount
-static/utsname
-static/ipc_namespace
-static/shm
-static/msgque
-static/sem
-transition/ipc
-static/netns-nf
-static/netns
-static/cgroup00
-static/cgroup01
-static/cgroup02
-ns/static/clean_mntns
-static/remap_dead_pid
-"
-
-TEST_CR_KERNEL="
-"
-
-TEST_MNTNS="
-ns/static/mntns_open
-ns/static/mntns_link_remap
-ns/static/mntns_link_ghost
-ns/static/mntns_shared_bind
-ns/static/mntns_shared_bind02
-ns/static/mntns_root_bind
-"
-
-TEST_AIO="
-static/aio00
-ns/static/aio00
-"
-
-TEST_TIMERFD="
-static/timerfd
-ns/static/timerfd
-"
+generate_test_list()
+{
 
-TEST_TUN="
-ns/static/tun
-"
+	check_mainstream || exit 1
+
+	TEST_LIST="
+		static/pipe00
+		static/pipe01
+		static/pipe02
+		static/busyloop00
+		static/cwd00
+		static/cwd01
+		static/cwd02
+		static/env00
+		static/maps00
+		static/maps01
+		static/maps02
+		static/maps04
+		static/maps05
+		static/mlock_setuid
+		static/maps_file_prot
+		static/mprotect00
+		static/mtime_mmap
+		static/sleeping00
+		static/write_read00
+		static/write_read01
+		static/write_read02
+		static/write_read10
+		static/wait00
+		static/vdso00
+		static/sched_prio00
+		static/sched_policy00
+		static/file_shared
+		static/file_append
+		static/timers
+		static/posix_timers
+		static/futex
+		static/futex-rl
+		static/xids00
+		static/groups
+		static/pthread00
+		static/pthread01
+		static/umask00
+		streaming/pipe_loop00
+		streaming/pipe_shared00
+		transition/file_read
+		static/sockets00
+		static/sockets01
+		static/sockets02
+		static/sock_opts00
+		static/sock_opts01
+		static/sockets_spair
+		static/sockets_dgram
+		static/socket_queues
+		static/deleted_unix_sock
+		static/sk-unix-unconn
+		static/pid00
+		static/pstree
+		static/caps00
+		static/cmdlinenv00
+		static/socket_listen
+		static/socket_listen6
+		static/packet_sock
+		static/packet_sock_mmap
+		static/socket_udp
+		static/sock_filter
+		static/socket6_udp
+		static/socket_udplite
+		static/selfexe00
+		static/link10
+		static/unlink_fstat00
+		static/unlink_fstat01
+		static/unlink_fstat02
+		static/unlink_fstat03
+		static/unlink_mmap00
+		static/unlink_mmap01
+		static/unlink_mmap02
+		static/rmdir_open
+		static/eventfs00
+		static/signalfd00
+		static/inotify00
+		static/inotify_irmap
+		static/fanotify00
+		static/unbound_sock
+		static/fifo-rowo-pair
+		static/fifo-ghost
+		static/fifo
+		static/fifo_wronly
+		static/fifo_ro
+		static/unlink_fifo
+		static/unlink_fifo_wronly
+		static/zombie00
+		static/rlimits00
+		transition/fork
+		transition/fork2
+		transition/thread-bomb
+		static/pty00
+		static/pty01
+		static/pty04
+		static/tty02
+		static/tty03
+		static/console
+		static/vt
+		static/child_opened_proc
+		static/cow01
+		static/fpu00
+		static/fpu01
+		static/mmx00
+		static/sse00
+		static/sse20
+		static/pdeath_sig
+		static/fdt_shared
+		static/file_locks00
+		static/file_locks01
+		static/file_locks02
+		static/file_locks03
+		static/file_locks04
+		static/file_locks05
+		static/sigpending
+		static/sigaltstack
+		static/sk-netlink
+		static/proc-self
+		static/grow_map
+		static/grow_map02
+		static/grow_map03
+		static/stopped
+		static/chroot
+		static/chroot-file
+		static/rtc
+		transition/maps007
+		static/dumpable01
+		static/dumpable02
+		static/deleted_dev
+	"
+
+	#
+	# Arch specific tests
+	if [ $ARCH = "x86_64" ]; then
+		TEST_LIST_ARCH="
+			static/vdso01
+		"
+	fi
 
-$CRIU check --feature "mnt_id"
-if [ $? -eq 0 ]; then
-	TEST_LIST="$TEST_LIST$TEST_MNTNS"
-else
-	export ZDTM_NOSUBNS=1
-fi
+	TEST_LIST=$TEST_LIST$TEST_LIST_ARCH
 
-$CRIU check --feature "aio_remap"
-if [ $? -eq 0 ]; then
-	TEST_LIST="$TEST_LIST$TEST_AIO"
-fi
+	# Duplicate list with ns/ prefix
+	TEST_LIST=$TEST_LIST$(echo $TEST_LIST | tr ' ' '\n' | sed 's#^#ns/#')
 
-$CRIU check --feature "timerfd"
-if [ $? -eq 0 ]; then
-	TEST_LIST="$TEST_LIST$TEST_TIMERFD"
-fi
+	# These ones are not in ns
+	TEST_LIST="$TEST_LIST
+		static/file_fown
+		static/socket-ext
+		static/socket-tcp
+		static/socket-tcp6
+		streaming/socket-tcp
+		streaming/socket-tcp6
+		static/socket-tcpbuf
+		static/socket-tcpbuf-local
+		static/socket-tcpbuf6
+		static/pty03
+		static/mountpoints
+		ns/static/session00
+		ns/static/session01
+		ns/static/tempfs
+		ns/static/bind-mount
+		static/utsname
+		static/ipc_namespace
+		static/shm
+		static/msgque
+		static/sem
+		transition/ipc
+		static/netns-nf
+		static/netns
+		static/cgroup00
+		static/cgroup01
+		static/cgroup02
+		ns/static/clean_mntns
+		static/remap_dead_pid
+	"
+
+	TEST_CR_KERNEL="
+	"
+
+	TEST_MNTNS="
+		ns/static/mntns_open
+		ns/static/mntns_link_remap
+		ns/static/mntns_link_ghost
+		ns/static/mntns_shared_bind
+		ns/static/mntns_shared_bind02
+		ns/static/mntns_root_bind
+	"
+
+	TEST_AIO="
+		static/aio00
+		ns/static/aio00
+	"
+
+	TEST_TIMERFD="
+		static/timerfd
+		ns/static/timerfd
+	"
+
+	TEST_TUN="
+		ns/static/tun
+	"
+
+	$CRIU check --feature "mnt_id"
+	if [ $? -eq 0 ]; then
+		TEST_LIST="$TEST_LIST$TEST_MNTNS"
+	else
+		export ZDTM_NOSUBNS=1
+	fi
 
-$CRIU check --feature "tun"
-if [ $? -eq 0 ]; then
-	TEST_LIST="$TEST_LIST$TEST_TUN"
-fi
+	$CRIU check --feature "aio_remap"
+	if [ $? -eq 0 ]; then
+		TEST_LIST="$TEST_LIST$TEST_AIO"
+	fi
 
-BLACKLIST_FOR_USERNS="
-ns/static/maps01
-ns/static/mlock_setuid
-ns/static/sched_prio00
-ns/static/sched_policy00
-ns/static/sockets00
-ns/static/sockets01
-ns/static/sockets02
-ns/static/sock_opts00
-ns/static/sock_opts01
-ns/static/sockets_spair
-ns/static/sockets_dgram
-ns/static/socket_queues
-ns/static/deleted_unix_sock
-ns/static/sk-unix-unconn
-ns/static/socket_listen
-ns/static/socket_listen6
-ns/static/packet_sock
-ns/static/packet_sock_mmap
-ns/static/socket_udp
-ns/static/sock_filter
-ns/static/socket6_udp
-ns/static/socket_udplite
-ns/static/inotify00
-ns/static/inotify_irmap
-ns/static/fanotify00
-ns/static/unbound_sock
-ns/static/fifo-ghost
-ns/static/unlink_fifo
-ns/static/unlink_fifo_wronly
-ns/static/pty00
-ns/static/pty01
-ns/static/tty02
-ns/static/tty03
-ns/static/sk-netlink
-ns/static/dumpable02
-ns/static/deleted_dev
-ns/static/tempfs
-ns/static/clean_mntns
-ns/static/mntns_link_remap
-ns/static/mntns_link_ghost
-ns/static/console
-ns/static/vt
-ns/static/rtc
-ns/static/mntns_shared_bind
-ns/static/mntns_shared_bind02
-ns/static/mntns_root_bind
-"
+	$CRIU check --feature "timerfd"
+	if [ $? -eq 0 ]; then
+		TEST_LIST="$TEST_LIST$TEST_TIMERFD"
+	fi
 
-# Add tests which can be executed in an user namespace
-$CRIU check --feature "userns"
-if [ $? -eq 0 ]; then
-	blist=`mktemp /tmp/zdtm.black.XXXXXX`
-	echo "$BLACKLIST_FOR_USERNS" | sort > $blist
+	$CRIU check --feature "tun"
+	if [ $? -eq 0 ]; then
+		TEST_LIST="$TEST_LIST$TEST_TUN"
+	fi
 
+	BLACKLIST_FOR_USERNS="
+		ns/static/maps01
+		ns/static/mlock_setuid
+		ns/static/sched_prio00
+		ns/static/sched_policy00
+		ns/static/sockets00
+		ns/static/sockets01
+		ns/static/sockets02
+		ns/static/sock_opts00
+		ns/static/sock_opts01
+		ns/static/sockets_spair
+		ns/static/sockets_dgram
+		ns/static/socket_queues
+		ns/static/deleted_unix_sock
+		ns/static/sk-unix-unconn
+		ns/static/socket_listen
+		ns/static/socket_listen6
+		ns/static/packet_sock
+		ns/static/packet_sock_mmap
+		ns/static/socket_udp
+		ns/static/sock_filter
+		ns/static/socket6_udp
+		ns/static/socket_udplite
+		ns/static/inotify00
+		ns/static/inotify_irmap
+		ns/static/fanotify00
+		ns/static/unbound_sock
+		ns/static/fifo-ghost
+		ns/static/unlink_fifo
+		ns/static/unlink_fifo_wronly
+		ns/static/pty00
+		ns/static/pty01
+		ns/static/tty02
+		ns/static/tty03
+		ns/static/sk-netlink
+		ns/static/dumpable02
+		ns/static/deleted_dev
+		ns/static/tempfs
+		ns/static/clean_mntns
+		ns/static/mntns_link_remap
+		ns/static/mntns_link_ghost
+		ns/static/console
+		ns/static/vt
+		ns/static/rtc
+		ns/static/mntns_shared_bind
+		ns/static/mntns_shared_bind02
+		ns/static/mntns_root_bind
+	"
+
+	# Add tests which can be executed in an user namespace
+	$CRIU check --feature "userns"
+	if [ $? -eq 0 ]; then
+		blist=`mktemp /tmp/zdtm.black.XXXXXX`
+		echo "$BLACKLIST_FOR_USERNS" | tr -d "[:blank:]" | sort > $blist
+
+
+		TEST_LIST="$TEST_LIST
+		`echo "$TEST_LIST" | tr -d "[:blank:]" | grep "^ns/" | sort | \
+		diff --changed-group-format="%<" --unchanged-group-format="" - $blist | \
+		sed s#ns/#ns/user/#`"
+		unlink $blist
+	fi
 
-	TEST_LIST="$TEST_LIST
-	`echo "$TEST_LIST" | grep "^ns/" | sort | \
-	diff --changed-group-format="%<" --unchanged-group-format="" - $blist | \
-	sed s#ns/#ns/user/#`"
-	unlink $blist
-fi
+	TEST_LIST=$(echo $TEST_LIST | tr " " "\n")
+}
 
 TEST_SUID_LIST="
 pid00
@@ -1037,7 +1045,8 @@ while :; do
 		shift
 		;;
 	  -l)
-		echo $TEST_LIST | tr ' ' '\n' >&3
+		generate_test_list
+		echo "$TEST_LIST" >&3
 		exit 0
 		;;
 	  -v)
@@ -1055,7 +1064,6 @@ while :; do
 			# pidns is used to avoid conflicts
 			# mntns is used to mount /proc
 			# net is used to avoid conflicts of parasite sockets
-			make zdtm_ct &&
 			./zdtm_ct ./zdtm.sh "$@"
 			exit
 		}
@@ -1088,16 +1096,13 @@ if [ $SPECIFIED_NAME_USED -eq 1 ]; then
 	fi
 	run_test $1 || case_error $1
 else
-	if [ $COMPILE_ONLY -eq 0 ]; then
-		check_mainstream || exit 1
-	fi
-
 	if [ $# -eq 0 ]; then
 		pattern='.*'
 	else
 		pattern=$1
 	fi
 
+	generate_test_list
 	for t in $(echo "$TEST_LIST" | grep -x "$pattern"); do
 		run_test $t || case_error $t
 	done
-- 
1.9.3



More information about the CRIU mailing list