Author: rodrigc
Date: Sun Oct  5 02:52:54 2014
New Revision: 272549
URL: https://svnweb.freebsd.org/changeset/base/272549

Log:
  MFC r272305
  
  Fix pkill unit test.

Modified:
  stable/10/bin/pkill/tests/pgrep-j_test.sh
  stable/10/bin/pkill/tests/pkill-j_test.sh
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/bin/pkill/tests/pgrep-j_test.sh
==============================================================================
--- stable/10/bin/pkill/tests/pgrep-j_test.sh   Sun Oct  5 02:37:01 2014        
(r272548)
+++ stable/10/bin/pkill/tests/pgrep-j_test.sh   Sun Oct  5 02:52:54 2014        
(r272549)
@@ -1,7 +1,23 @@
 #!/bin/sh
 # $FreeBSD$
 
-base=`basename $0`
+jail_name_to_jid()
+{
+       local check_name="$1"
+       (
+               line="$(jls -n 2> /dev/null | grep  name=$check_name  )"
+               for nv in $line; do
+                       local name="${nv%=*}"
+                       if [ "${name}" = "jid" ]; then
+                               eval $nv
+                               echo $jid
+                               break
+                       fi
+               done
+       )
+}
+
+base=pgrep_j_test
 
 echo "1..3"
 
@@ -9,21 +25,25 @@ name="pgrep -j <jid>"
 if [ `id -u` -eq 0 ]; then
        sleep=$(pwd)/sleep.txt
        ln -sf /bin/sleep $sleep
-       jail / $base-1 127.0.0.1 $sleep 5 &
-       chpid=$!
-       jail / $base-2 127.0.0.1 $sleep 5 &
-       chpid2=$!
-       $sleep 5 &
-       chpid3=$!
-       sleep 0.5
-       jid=`jls | awk "/127\\.0\\.0\\.1.*${base}-1/ {print \$1}"`
-       pid=`pgrep -f -j $jid $sleep`
-       if [ "$pid" = "$chpid" ]; then
+       jail -c path=/ name=${base}_1_1 ip4.addr=127.0.0.1 \
+           command=daemon -p ${PWD}/${base}_1_1.pid $sleep 5 &
+
+       jail -c path=/ name=${base}_1_2 ip4.addr=127.0.0.1 \
+           command=daemon -p ${PWD}/${base}_1_2.pid $sleep 5 &
+
+       jid1=$(jail_name_to_jid ${base}_1_1)
+       jid2=$(jail_name_to_jid ${base}_1_2)
+       jid="${jid1},${jid2}"
+       pid1="$(pgrep -f -x -j $jid "$sleep 5" | sort)"
+       pid2=$(printf "%s\n%s" "$(cat ${PWD}/${base}_1_1.pid)" \
+           $(cat ${PWD}/${base}_1_2.pid) | sort)
+       if [ "$pid1" = "$pid2" ]; then
                echo "ok 1 - $name"
        else
                echo "not ok 1 - $name"
        fi
-       kill $chpid $chpid2 $chpid3
+       [ -f ${PWD}/${base}_1_1.pid ] && kill $(cat ${PWD}/${base}_1_1.pid)
+       [ -f ${PWD}/${base}_1_2.pid ] && kill $(cat ${PWD}/${base}_1_2.pid)
        rm -f $sleep
 else
        echo "ok 1 - $name # skip Test needs uid 0."
@@ -33,21 +53,23 @@ name="pgrep -j any"
 if [ `id -u` -eq 0 ]; then
        sleep=$(pwd)/sleep.txt
        ln -sf /bin/sleep $sleep
-       jail / $base-1 127.0.0.1 $sleep 5 &
-       chpid=$!
-       jail / $base-2 127.0.0.1 $sleep 5 &
-       chpid2=$!
-       $sleep 5 &
-       chpid3=$!
-       sleep 0.5
-       pids=`pgrep -f -j any $sleep | sort`
-       refpids=`{ echo $chpid; echo $chpid2; } | sort`
-       if [ "$pids" = "$refpids" ]; then
+       jail -c path=/ name=${base}_2_1 ip4.addr=127.0.0.1 \
+           command=daemon -p ${PWD}/${base}_2_1.pid $sleep 5 &
+
+       jail -c path=/ name=${base}_2_2 ip4.addr=127.0.0.1 \
+           command=daemon -p ${PWD}/${base}_2_2.pid $sleep 5 &
+
+       sleep 2
+       pid1="$(pgrep -f -x -j any "$sleep 5" | sort)"
+       pid2=$(printf "%s\n%s" "$(cat ${PWD}/${base}_2_1.pid)" \
+           $(cat ${PWD}/${base}_2_2.pid) | sort)
+       if [ "$pid1" = "$pid2" ]; then
                echo "ok 2 - $name"
        else
                echo "not ok 2 - $name"
        fi
-       kill $chpid $chpid2 $chpid3
+       [ -f ${PWD}/${base}_2_1.pid ] && kill $(cat ${PWD}/${base}_2_1.pid)
+       [ -f ${PWD}/${base}_2_2.pid ] && kill $(cat ${PWD}/${base}_2_2.pid)
        rm -f $sleep
 else
        echo "ok 2 - $name # skip Test needs uid 0."
@@ -57,19 +79,19 @@ name="pgrep -j none"
 if [ `id -u` -eq 0 ]; then
        sleep=$(pwd)/sleep.txt
        ln -sf /bin/sleep $sleep
-       $sleep 5 &
-       chpid=$!
-       jail / $base 127.0.0.1 $sleep 5 &
-       chpid2=$!
-       sleep 0.5
-       pid=`pgrep -f -j none $sleep`
-       if [ "$pid" = "$chpid" ]; then
+       daemon -p ${PWD}/${base}_3_1.pid $sleep 5 &
+       jail -c path=/ name=${base}_3_2 ip4.addr=127.0.0.1 \
+           command=daemon -p ${PWD}/${base}_3_2.pid $sleep 5 &
+       sleep 2
+       pid="$(pgrep -f -x -j none "$sleep 5")"
+       if [ "$pid" = "$(cat ${PWD}/${base}_3_1.pid)" ]; then
                echo "ok 3 - $name"
        else
                echo "not ok 3 - $name"
        fi
-       kill $chpid $chpid2
        rm -f $sleep
+       [ -f ${PWD}/${base}_3_1.pid ] && kill $(cat $PWD/${base}_3_1.pid) 
+       [ -f ${PWD}/${base}_3_2.pid ] && kill $(cat $PWD/${base}_3_2.pid) 
 else
        echo "ok 3 - $name # skip Test needs uid 0."
 fi

Modified: stable/10/bin/pkill/tests/pkill-j_test.sh
==============================================================================
--- stable/10/bin/pkill/tests/pkill-j_test.sh   Sun Oct  5 02:37:01 2014        
(r272548)
+++ stable/10/bin/pkill/tests/pkill-j_test.sh   Sun Oct  5 02:52:54 2014        
(r272549)
@@ -1,7 +1,23 @@
 #!/bin/sh
 # $FreeBSD$
 
-base=`basename $0`
+jail_name_to_jid()
+{
+       local check_name="$1"
+       (
+               line="$(jls -n 2> /dev/null | grep  name=$check_name  )"
+               for nv in $line; do
+                       local name="${nv%=*}"
+                       if [ "${name}" = "jid" ]; then
+                               eval $nv
+                               echo $jid
+                               break
+                       fi
+               done
+       )
+}
+
+base=pkill_j_test
 
 echo "1..3"
 
@@ -9,21 +25,28 @@ name="pkill -j <jid>"
 if [ `id -u` -eq 0 ]; then
        sleep=$(pwd)/sleep.txt
        ln -sf /bin/sleep $sleep
-       jail / $base-1 127.0.0.1 $sleep 5 &
-       chpid=$!
-       jail / $base-2 127.0.0.1 $sleep 5 &
-       chpid2=$!
+        jail -c path=/ name=${base}_1_1 ip4.addr=127.0.0.1 \
+            command=daemon -p ${PWD}/${base}_1_1.pid $sleep 5 &
+
+        jail -c path=/ name=${base}_1_2 ip4.addr=127.0.0.1 \
+            command=daemon -p ${PWD}/${base}_1_2.pid $sleep 5 &
+
        $sleep 5 &
-       chpid3=$!
        sleep 0.5
-       jid=`jls | awk "/127\\.0\\.0\\.1.*${base}-1/ {print \$1}"`
-       if pkill -f -j $jid $sleep && sleep 0.5 &&
-           ! kill $chpid && kill $chpid2 $chpid3; then
+       jid1=$(jail_name_to_jid ${base}_1_1)
+       jid2=$(jail_name_to_jid ${base}_1_2)
+       jid="${jid1},${jid2}"
+       if pkill -f -j "$jid" $sleep && sleep 0.5 &&
+           ! -f ${PWD}/${base}_1_1.pid &&
+           ! -f ${PWD}/${base}_1_2.pid ; then
                echo "ok 1 - $name"
        else
                echo "not ok 1 - $name"
        fi 2>/dev/null
        rm -f $sleep
+       [ -f ${PWD}/${base}_1_1.pid ] && kill $(cat ${PWD}/${base}_1_1.pid)
+       [ -f ${PWD}/${base}_1_2.pid ] && kill $(cat ${PWD}/${base}_1_2.pid)
+       wait
 else
        echo "ok 1 - $name # skip Test needs uid 0."
 fi
@@ -32,20 +55,26 @@ name="pkill -j any"
 if [ `id -u` -eq 0 ]; then
        sleep=$(pwd)/sleep.txt
        ln -sf /bin/sleep $sleep
-       jail / $base-1 127.0.0.1 $sleep 5 &
-       chpid=$!
-       jail / $base-2 127.0.0.1 $sleep 5 &
-       chpid2=$!
+        jail -c path=/ name=${base}_2_1 ip4.addr=127.0.0.1 \
+            command=daemon -p ${PWD}/${base}_2_1.pid $sleep 5 &
+
+        jail -c path=/ name=${base}_2_2 ip4.addr=127.0.0.1 \
+            command=daemon -p ${PWD}/${base}_2_2.pid $sleep 5 &
+
        $sleep 5 &
-       chpid3=$!
        sleep 0.5
+       chpid3=$!
        if pkill -f -j any $sleep && sleep 0.5 &&
-           ! kill $chpid && ! kill $chpid2 && kill $chpid3; then
+           [ ! -f ${PWD}/${base}_2_1.pid -a
+             ! -f ${PWD}/${base}_2_2.pid ] && kill $chpid3; then
                echo "ok 2 - $name"
        else
                echo "not ok 2 - $name"
        fi 2>/dev/null
        rm -f $sleep
+       [ -f ${PWD}/${base}_2_1.pid ] && kill $(cat ${PWD}/${base}_2_1.pid)
+       [ -f ${PWD}/${base}_2_2.pid ] && kill $(cat ${PWD}/${base}_2_2.pid)
+       wait
 else
        echo "ok 2 - $name # skip Test needs uid 0."
 fi
@@ -54,18 +83,20 @@ name="pkill -j none"
 if [ `id -u` -eq 0 ]; then
        sleep=$(pwd)/sleep.txt
        ln -sf /bin/sleep $sleep
-       $sleep 5 &
-       chpid=$!
-       jail / $base 127.0.0.1 $sleep 5 &
-       chpid2=$!
-       sleep 0.5
-       if pkill -f -j none $sleep && sleep 0.5 &&
-           ! kill $chpid && kill $chpid2; then
+       daemon -p ${PWD}/${base}_3_1.pid $sleep 5
+       jail -c path=/ name=${base}_3_2 ip4.addr=127.0.0.1 \
+            command=daemon -p ${PWD}/${base}_3_2.pid $sleep 5 &
+       sleep 1
+       if pkill -f -j none "$sleep 5" && sleep 1 &&
+           [ ! -f ${PWD}/${base}_3_1.pid -a -f ${PWD}/${base}_3_2.pid ] ; then
                echo "ok 3 - $name"
        else
+               ls ${PWD}/*.pid
                echo "not ok 3 - $name"
        fi 2>/dev/null
        rm -f $sleep
+       [ -f ${PWD}/${base}_3_1.pid ] && kill $(cat ${base}_3_1.pid)
+       [ -f ${PWD}/${base}_3_2.pid ] && kill $(cat ${base}_3_2.pid)
 else
        echo "ok 3 - $name # skip Test needs uid 0."
 fi
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to