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>
77 lines
1.6 KiB
Bash
Executable File
77 lines
1.6 KiB
Bash
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
|