scripts/qemutestlib: Add better process debugging and fix process group issue

In single testing with a shutdown scenario the processes are cleaned up correctly
but the manual cleanup fall back used for a minimal image do not work properly.
This patch fixes the kill commands to revert to non-process groups, fixing
the hung process issues that were occuring.

(From OE-Core rev: 6a0134fd4f1b64ef788be0791bd655dc7703d505)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2013-03-19 20:54:33 +00:00
parent ee416ad6f4
commit 8852e51bdc
1 changed files with 20 additions and 5 deletions

View File

@ -70,6 +70,7 @@ Test_Update_IPSAVE()
local ip_addr=$2
if [ "$TEST_SERIALIZE" -eq 1 ]; then
echo "Saving $pid $ip_addr to $TARGET_IPSAVE"
echo "$pid $ip_addr" > $TARGET_IPSAVE
fi
}
@ -215,6 +216,7 @@ Test_Kill_Qemu()
{
local index=0
local total=0
local k=0
# When TEST_SERIALIZE is set, qemu process will not be
# killed until all the cases are finished
@ -222,15 +224,26 @@ Test_Kill_Qemu()
index=`sed -n 2p ${TEST_STATUS} | awk '{print $3}'`
total=`sed -n 2p ${TEST_STATUS} | awk '{print $4}'`
if [ ${index} != ${total} ]; then
Test_Info "Do not kill the qemu process and use it for later testing"
Test_Info "Do not kill the qemu process and use it for later testing (step $index of $total)"
Test_Update_IPSAVE $XTERMPID $TARGET_IPADDR
else
kill -$QEMUPID
kill -$XTERMPID
k=1
fi
else
kill -$QEMUPID
kill -$XTERMPID
k=1
fi
if [ $k -eq 1 ]; then
running=`ps -wwfp $QEMUPID`
if [ $? -eq 0 ]; then
echo "killing $QEMUPID"
kill $QEMUPID
fi
running=`ps -wwfp $XTERMPID`
if [ $? -eq 0 ]; then
echo "killing $XTERMPID"
kill $XTERMPID
fi
fi
return
@ -393,6 +406,7 @@ Test_Create_Qemu()
# Get the pid of the xterm processor, which will be used in Test_Kill_Qemu
XTERMPID=$!
echo "XTERMPID is $XTERMPID"
fi
while [ ${up_time} -lt 10 ]
@ -404,6 +418,7 @@ Test_Create_Qemu()
sleep 5
else
Test_Info "Begin to check if qemu network is up"
echo "QEMUPID is $QEMUPID"
break
fi
done