diff options
18 files changed, 175 insertions, 5 deletions
diff --git a/meta/classes/imagetest-qemu.bbclass b/meta/classes/imagetest-qemu.bbclass index bd4dc9c0bf..07bdf01340 100644 --- a/meta/classes/imagetest-qemu.bbclass +++ b/meta/classes/imagetest-qemu.bbclass @@ -111,7 +111,7 @@ python do_qemuimagetest() { os.symlink(resultfile, sresultfile) f = open(sresultfile, "a") f.write("\tTest Result for %s\n" % machine) - f.write("\tTestcase\tPASS\tFAIL\tNORESULT\n") + f.write("\t%-15s%-15s%-15s%-15s\n" % ("Testcase", "PASS", "FAIL", "NORESULT")) f.close() """generate pre-defined testcase list""" diff --git a/scripts/qemuimage-testlib b/scripts/qemuimage-testlib index 3ebf5ffd2a..c2c394d5ed 100644 --- a/scripts/qemuimage-testlib +++ b/scripts/qemuimage-testlib @@ -151,7 +151,8 @@ Test_Print_Result() NORESULT=1 fi - echo -e "\t$1\t\t$PASS\t$FAIL\t$NORESULT" >> $TEST_RESULT/testresult.log + # Format the output of the test result + echo -e "$1 $PASS $FAIL $NORESULT" | awk '{printf("\t"); for(i=1;i<=NF;i++) printf("%-15s",$i); printf("\n");}' >> $TEST_RESULT/testresult.log } # Test_Kill_Qemu to kill child pid with parent pid given @@ -399,6 +400,7 @@ Test_Create_Qemu() # Parse IP address of target from the qemu command line if [ ${up_time} -lt ${timeout} ]; then + sleep 5 TARGET_IPADDR=`Test_Fetch_Target_IP $PID` fi diff --git a/scripts/qemuimage-tests/sanity/boot b/scripts/qemuimage-tests/sanity/boot index 5014e8a5ac..b75b9b9285 100755 --- a/scripts/qemuimage-tests/sanity/boot +++ b/scripts/qemuimage-tests/sanity/boot @@ -1,7 +1,7 @@ #!/bin/bash # # Boot Test Case for Sanity Test -# The case boot up the Qemu target with `runqemu qemux86`. +# The case boot up the Qemu target with `poky-qemu qemuxxx`. # Then check if qemu and qemu network is up. # # Author: Jiajun Xu <jiajun.xu@intel.com> diff --git a/scripts/qemuimage-tests/sanity/dmesg b/scripts/qemuimage-tests/sanity/dmesg index c384659b6c..36813dcd43 100755 --- a/scripts/qemuimage-tests/sanity/dmesg +++ b/scripts/qemuimage-tests/sanity/dmesg @@ -1,6 +1,6 @@ #!/bin/bash # Dmesg Check Test Case for Sanity Test -# The case boot up the Qemu target with `runqemu qemux86`. +# The case boot up the Qemu target with `poky-qemu qemuxxx`. # Then check if there is any error log in dmesg. # # Author: Jiajun Xu <jiajun.xu@intel.com> diff --git a/scripts/qemuimage-tests/sanity/scp b/scripts/qemuimage-tests/sanity/scp new file mode 100755 index 0000000000..ce3489d664 --- /dev/null +++ b/scripts/qemuimage-tests/sanity/scp @@ -0,0 +1,71 @@ +#!/bin/bash +# SCP Test Case for Sanity Test +# The case boot up the Qemu target with `poky-qemu qemuxxx`. +# Then check if file can be copied into target with scp command. +# +# Author: Jiajun Xu <jiajun.xu@intel.com> +# +# This file is licensed under the GNU General Public License, +# Version 2. +# + +. $POKYBASE/scripts/qemuimage-testlib + +TIMEOUT=360 +RET=1 +SPID=0 +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 file can be copied from host into target +# For qemu target, the file is 5M +if [ $RET -eq 0 ]; then + echo $QEMUARCH | grep -q "qemu" + + if [ $? -eq 0 ]; then + dd if=/dev/zero of=${TEST_TMP}/scp_test_file bs=512k count=10 + Test_SCP ${TARGET_IPADDR} ${TEST_TMP}/scp_test_file /home/root & + SPID=$! + fi + + # Check if scp finished or not + while [ $i -lt $TIMEOUT ] + do + ps -fp $SPID > /dev/null + if [ $? -ne 0 ]; then + RET=0 + break + fi + i=$((i+5)) + sleep 5 + done + + # Kill scp process if scp is not finished in time + if [ $i -ge $TIMEOUT ]; then + RET=1 + kill $SPID + fi +fi + +if [ ${RET} -eq 0 ]; then + Test_Info "SCP Test PASS" + Test_Kill_Qemu + Test_Print_Result "SCP" 0 + exit 0 +else + Test_Info "SCP Test FAIL" + Test_Kill_Qemu + Test_Print_Result "SCP" 1 + exit 1 +fi diff --git a/scripts/qemuimage-tests/sanity/shutdown b/scripts/qemuimage-tests/sanity/shutdown new file mode 100755 index 0000000000..e36b4a983d --- /dev/null +++ b/scripts/qemuimage-tests/sanity/shutdown @@ -0,0 +1,70 @@ +#!/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=360 +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 + exit 0 +else + Test_Info "Shutdown Test FAIL" + Test_Kill_Qemu + Test_Print_Result "shutdown" 1 + exit 1 +fi diff --git a/scripts/qemuimage-tests/sanity/ssh b/scripts/qemuimage-tests/sanity/ssh index f9143d0558..084530adfb 100755 --- a/scripts/qemuimage-tests/sanity/ssh +++ b/scripts/qemuimage-tests/sanity/ssh @@ -1,6 +1,6 @@ #!/bin/bash # SSH Test Case for Sanity Test -# The case boot up the Qemu target with `runqemu qemux86`. +# The case boot up the Qemu target with `poky-qemu qemuxxx`. # Then check if ssh service in qemu is up. # # Author: Jiajun Xu <jiajun.xu@intel.com> diff --git a/scripts/qemuimage-tests/scenario/qemuarm/poky-image-sato b/scripts/qemuimage-tests/scenario/qemuarm/poky-image-sato index f6e7cb1604..b8e9847b48 100644 --- a/scripts/qemuimage-tests/scenario/qemuarm/poky-image-sato +++ b/scripts/qemuimage-tests/scenario/qemuarm/poky-image-sato @@ -1,3 +1,5 @@ sanity boot sanity ssh +sanity scp sanity dmesg +sanity shutdown diff --git a/scripts/qemuimage-tests/scenario/qemuarm/poky-image-sdk b/scripts/qemuimage-tests/scenario/qemuarm/poky-image-sdk index f6e7cb1604..b8e9847b48 100644 --- a/scripts/qemuimage-tests/scenario/qemuarm/poky-image-sdk +++ b/scripts/qemuimage-tests/scenario/qemuarm/poky-image-sdk @@ -1,3 +1,5 @@ sanity boot sanity ssh +sanity scp sanity dmesg +sanity shutdown diff --git a/scripts/qemuimage-tests/scenario/qemumips/poky-image-sato b/scripts/qemuimage-tests/scenario/qemumips/poky-image-sato index f6e7cb1604..b8e9847b48 100644 --- a/scripts/qemuimage-tests/scenario/qemumips/poky-image-sato +++ b/scripts/qemuimage-tests/scenario/qemumips/poky-image-sato @@ -1,3 +1,5 @@ sanity boot sanity ssh +sanity scp sanity dmesg +sanity shutdown diff --git a/scripts/qemuimage-tests/scenario/qemumips/poky-image-sdk b/scripts/qemuimage-tests/scenario/qemumips/poky-image-sdk index f6e7cb1604..b8e9847b48 100644 --- a/scripts/qemuimage-tests/scenario/qemumips/poky-image-sdk +++ b/scripts/qemuimage-tests/scenario/qemumips/poky-image-sdk @@ -1,3 +1,5 @@ sanity boot sanity ssh +sanity scp sanity dmesg +sanity shutdown diff --git a/scripts/qemuimage-tests/scenario/qemuppc/poky-image-sato b/scripts/qemuimage-tests/scenario/qemuppc/poky-image-sato index f6e7cb1604..b8e9847b48 100644 --- a/scripts/qemuimage-tests/scenario/qemuppc/poky-image-sato +++ b/scripts/qemuimage-tests/scenario/qemuppc/poky-image-sato @@ -1,3 +1,5 @@ sanity boot sanity ssh +sanity scp sanity dmesg +sanity shutdown diff --git a/scripts/qemuimage-tests/scenario/qemuppc/poky-image-sdk b/scripts/qemuimage-tests/scenario/qemuppc/poky-image-sdk index f6e7cb1604..b8e9847b48 100644 --- a/scripts/qemuimage-tests/scenario/qemuppc/poky-image-sdk +++ b/scripts/qemuimage-tests/scenario/qemuppc/poky-image-sdk @@ -1,3 +1,5 @@ sanity boot sanity ssh +sanity scp sanity dmesg +sanity shutdown diff --git a/scripts/qemuimage-tests/scenario/qemux86-64/poky-image-minimal b/scripts/qemuimage-tests/scenario/qemux86-64/poky-image-minimal new file mode 100644 index 0000000000..0fcc7bba84 --- /dev/null +++ b/scripts/qemuimage-tests/scenario/qemux86-64/poky-image-minimal @@ -0,0 +1 @@ +sanity boot diff --git a/scripts/qemuimage-tests/scenario/qemux86-64/poky-image-sato b/scripts/qemuimage-tests/scenario/qemux86-64/poky-image-sato new file mode 100644 index 0000000000..b8e9847b48 --- /dev/null +++ b/scripts/qemuimage-tests/scenario/qemux86-64/poky-image-sato @@ -0,0 +1,5 @@ +sanity boot +sanity ssh +sanity scp +sanity dmesg +sanity shutdown diff --git a/scripts/qemuimage-tests/scenario/qemux86-64/poky-image-sdk b/scripts/qemuimage-tests/scenario/qemux86-64/poky-image-sdk new file mode 100644 index 0000000000..b8e9847b48 --- /dev/null +++ b/scripts/qemuimage-tests/scenario/qemux86-64/poky-image-sdk @@ -0,0 +1,5 @@ +sanity boot +sanity ssh +sanity scp +sanity dmesg +sanity shutdown diff --git a/scripts/qemuimage-tests/scenario/qemux86/poky-image-sato b/scripts/qemuimage-tests/scenario/qemux86/poky-image-sato index f6e7cb1604..b8e9847b48 100644 --- a/scripts/qemuimage-tests/scenario/qemux86/poky-image-sato +++ b/scripts/qemuimage-tests/scenario/qemux86/poky-image-sato @@ -1,3 +1,5 @@ sanity boot sanity ssh +sanity scp sanity dmesg +sanity shutdown diff --git a/scripts/qemuimage-tests/scenario/qemux86/poky-image-sdk b/scripts/qemuimage-tests/scenario/qemux86/poky-image-sdk index f6e7cb1604..b8e9847b48 100644 --- a/scripts/qemuimage-tests/scenario/qemux86/poky-image-sdk +++ b/scripts/qemuimage-tests/scenario/qemux86/poky-image-sdk @@ -1,3 +1,5 @@ sanity boot sanity ssh +sanity scp sanity dmesg +sanity shutdown |