[lvm-devel] master - tests: rename kill_tagged_processes

Zdenek Kabelac zkabelac at fedoraproject.org
Fri May 1 13:08:35 UTC 2015


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=16e8006eb05a3fd18d1efeb58f79ffbb41ba61e2
Commit:        16e8006eb05a3fd18d1efeb58f79ffbb41ba61e2
Parent:        c18e969e30a44ec392f40414e1f134ff70cecb38
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Thu Apr 30 18:42:31 2015 +0200
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Fri May 1 15:07:58 2015 +0200

tests: rename kill_tagged_processes

Better name for aux function.
First use normal -TERM, and only after a while use -KILL
(leaving some time to correctly finish)
Print INFO about killed processes.
---
 test/lib/aux.sh                      |   31 +++++++++++++++++++++++++------
 test/shell/pvmove-abort-all.sh       |    2 +-
 test/shell/pvmove-abort.sh           |    2 +-
 test/shell/pvmove-restart.sh         |    2 +-
 test/shell/pvmove-resume-1.sh        |    2 +-
 test/shell/pvmove-resume-2.sh        |    2 +-
 test/shell/pvmove-resume-multiseg.sh |    2 +-
 7 files changed, 31 insertions(+), 12 deletions(-)

diff --git a/test/lib/aux.sh b/test/lib/aux.sh
index e20b6b0..716d596 100644
--- a/test/lib/aux.sh
+++ b/test/lib/aux.sh
@@ -233,17 +233,36 @@ kill_sleep_kill_() {
 }
 
 print_procs_by_tag_() {
-	ps -o pid=,args= ehax 2>/dev/null | grep -weLVM_TEST_TAG=${1:-kill_me_$PREFIX} 2>/dev/null || true
+	(ps -o pid,args ehax | grep -we"LVM_TEST_TAG=${1:-kill_me_$PREFIX}") || true
 }
 
 count_processes_with_tag() {
 	print_procs_by_tag_ | wc -l
 }
 
-kill_listed_processes() {
-	while read pid b; do
-		test -z "$pid" || kill -9 $pid
-	done <<< $(print_procs_by_tag_ $@)
+kill_tagged_processes() {
+	local pid
+	local pids
+	local wait
+
+	# read uses all vars within pipe subshell
+	print_procs_by_tag_ "$@" | while read -r pid wait; do
+		if test -n "$pid" ; then
+			echo "Killing tagged process: $pid ${wait:0:120}..."
+			kill -TERM $pid 2>/dev/null || true
+		fi
+		pids="$pids $pid"
+	done
+
+	# wait if process exited and eventually -KILL
+	wait=0
+	for pid in $pids ; do
+		while ps $pid > /dev/null && test $wait -le 10; do
+			sleep .2
+			wait=$(($wait + 1))
+		done
+		test $wait -le 10 || kill -KILL $pid 2>/dev/null || true
+	done
 }
 
 teardown() {
@@ -252,7 +271,7 @@ teardown() {
 
 	if test -f TESTNAME ; then
 
-	kill_listed_processes
+	kill_tagged_processes
 
 	kill_sleep_kill_ LOCAL_LVMETAD ${LVM_VALGRIND_LVMETAD:-0}
 
diff --git a/test/shell/pvmove-abort-all.sh b/test/shell/pvmove-abort-all.sh
index 5bca8a2..da43da6 100644
--- a/test/shell/pvmove-abort-all.sh
+++ b/test/shell/pvmove-abort-all.sh
@@ -67,7 +67,7 @@ not grep "^\[pvmove" out
 lvremove -ff $vg $vg1
 
 wait
-aux kill_listed_processes
+aux kill_tagged_processes
 done
 done
 
diff --git a/test/shell/pvmove-abort.sh b/test/shell/pvmove-abort.sh
index 2332521..6b807ac 100644
--- a/test/shell/pvmove-abort.sh
+++ b/test/shell/pvmove-abort.sh
@@ -58,7 +58,7 @@ pvmove --abort
 lvremove -ff $vg
 
 wait
-aux kill_listed_processes
+aux kill_tagged_processes
 done
 done
 
diff --git a/test/shell/pvmove-restart.sh b/test/shell/pvmove-restart.sh
index b91f624..1496b35 100644
--- a/test/shell/pvmove-restart.sh
+++ b/test/shell/pvmove-restart.sh
@@ -90,7 +90,7 @@ pvmove --abort
 lvs -a -o+devices $vg
 
 lvremove -ff $vg
-aux kill_listed_processes
+aux kill_tagged_processes
 done
 
 # Restore delayed device back
diff --git a/test/shell/pvmove-resume-1.sh b/test/shell/pvmove-resume-1.sh
index 9825e76..acf35ee 100644
--- a/test/shell/pvmove-resume-1.sh
+++ b/test/shell/pvmove-resume-1.sh
@@ -98,7 +98,7 @@ test_pvmove_resume() {
 		i=$((i + 1))
 	done
 
-	aux kill_listed_processes
+	aux kill_tagged_processes
 
 	lvremove -ff $vg $vg1
 }
diff --git a/test/shell/pvmove-resume-2.sh b/test/shell/pvmove-resume-2.sh
index dee82cc..37a552d 100644
--- a/test/shell/pvmove-resume-2.sh
+++ b/test/shell/pvmove-resume-2.sh
@@ -80,7 +80,7 @@ test_pvmove_resume() {
 		i=$((i + 1))
 	done
 
-	aux kill_listed_processes
+	aux kill_tagged_processes
 
 	lvremove -ff $vg
 }
diff --git a/test/shell/pvmove-resume-multiseg.sh b/test/shell/pvmove-resume-multiseg.sh
index d70662d..be21d56 100644
--- a/test/shell/pvmove-resume-multiseg.sh
+++ b/test/shell/pvmove-resume-multiseg.sh
@@ -92,7 +92,7 @@ test_pvmove_resume() {
 		i=$((i + 1))
 	done
 
-	aux kill_listed_processes
+	aux kill_tagged_processes
 
 	lvremove -ff $vg
 }




More information about the lvm-devel mailing list