poky/scripts/qemuimage-tests/sanity/shutdown
Jiajun Xu 3e052919c9 qemuimagetest: Use same image during sanity testing instead of copying a new image for each case
To reduce the time on sanity testing, we remove variable SHARE_IMAGE and use
a new variable TEST_SERIALIZE in local.conf. It is by default set to 1. Poky
will copy and boot the to-be tested image for only once. It will not remove
or kill the image and test cases will be serialized executed against the same
image. If it is set to 0, image is always be copied for each cases, which takes
much time. I had a experiment that latest qemuppc sato only takes 7 minutes to
finish 9 sanity test cases, which takes more than 20 minutes before.

I also removed sanity case "boot" from sato/sdk/lsb because the other cases for
these targets already cover the check point of "boot".

Signed-off-by Jiajun Xu <jiajun.xu@intel.com>
2011-01-20 21:36:57 +00:00

77 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# Shutdown Test Case for Sanity Test
# The case boot up the Qemu target with `poky-qemu 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.
#
. $POKYBASE/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 $PID > /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