#!/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 # # 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 $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