mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00

The current code has a race since it greps for *any* qemu process running, even if it isn't the one we started. This leads to some sanity tests potentially failing on machines where multiple sets of sanity tests are running. To resovle this and some other ugly code issues, add a python script to accurately walk the process tree and find the qemu process. We can then replace all the shell functions attempting this which happen to work in many cases but not all. Also clean up some of the error handling so its more legible. (From OE-Core rev: a62263761fc77c139d418236cc52b04bed629229) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
1.6 KiB
Executable File
1.6 KiB
Executable File
#!/bin/bash
Shutdown Test Case for Sanity Test
The case boot up the Qemu target with runqemu qemuxxx
.
Then check if target can shutdown
For qemux86/x86-64, we use command "poweroff" for target shutdown
For non-x86 targets, we use command "reboot" for target shutdown
Author: Jiajun Xu jiajun.xu@intel.com
This file is licensed under the GNU General Public License,
Version 2.
. $COREBASE/scripts/qemuimage-testlib
TIMEOUT=400
RET=1 i=0
Start qemu and check its network
Test_Create_Qemu ${TIMEOUT}
If qemu network is up, check ssh service in qemu
if [ $? -eq 0 ]; then Test_Info "Begin to Test SSH Service in Qemu" Test_SSH_UP ${TARGET_IPADDR} ${TIMEOUT} RET=$? else RET=1 fi
Check if target can shutdown
if [ $RET -eq 0 ]; then echo $QEMUARCH | grep -q "qemux86"
# For qemux86/x86-64, command "poweroff" is used
# For non x86 qemu targets, command "reboot" is used because of BUG #100
if [ $? -eq 0 ]; then
Test_SSH ${TARGET_IPADDR} "/sbin/poweroff"
else
Test_SSH ${TARGET_IPADDR} "/sbin/reboot"
fi
# If qemu start up process ends up, it means shutdown completes
while [ $i -lt $TIMEOUT ]
do
ps -fp $QEMUPID > /dev/null 2> /dev/null
if [ $? -ne 0 ]; then
RET=0
break
fi
i=$((i+5))
sleep 5
done
if [ $i -ge $TIMEOUT ]; then
RET=1
fi
fi
if [ ${RET} -eq 0 ]; then Test_Info "Shutdown Test PASS" Test_Print_Result "shutdown" 0
# Remove TARGET_IPSAVE since no existing qemu running now
if [ -e ${TARGET_IPSAVE} ]; then
rm -rf ${TARGET_IPSAVE}
fi
exit 0
else Test_Info "Shutdown Test FAIL" Test_Kill_Qemu Test_Print_Result "shutdown" 1 exit 1 fi