qemuimagetest: Use the same image in sanity testing to fix the timeout issue on autobuilder
Fixes [BUGID #595] Because of the QEMU booting slowness issue(see bug #646 and #618), autobuilder may suffer a timeout issue when running sanity test. We introduce variable SHARE_IMAGE here to fix the issue. It is by default set to 1. Poky will copy latest built-out image and keep using it in sanity testing. If it is set to 0, latest built-out image will be copied and tested for each case, which will take much time. Signed-off-by Jiajun Xu <jiajun.xu@intel.com>
This commit is contained in:
parent
897530621f
commit
2119274314
|
@ -5,6 +5,7 @@ TEST_LOG ?= "${LOG_DIR}/qemuimagetests"
|
||||||
TEST_RESULT ?= "${TEST_DIR}/result"
|
TEST_RESULT ?= "${TEST_DIR}/result"
|
||||||
TEST_TMP ?= "${TEST_DIR}/tmp"
|
TEST_TMP ?= "${TEST_DIR}/tmp"
|
||||||
TEST_SCEN ?= "sanity"
|
TEST_SCEN ?= "sanity"
|
||||||
|
SHARE_IMAGE ?= "1"
|
||||||
|
|
||||||
python do_qemuimagetest() {
|
python do_qemuimagetest() {
|
||||||
qemuimagetest_main(d)
|
qemuimagetest_main(d)
|
||||||
|
@ -37,7 +38,7 @@ def qemuimagetest_main(d):
|
||||||
"""funtion to run each case under scenario"""
|
"""funtion to run each case under scenario"""
|
||||||
def runtest(scen, case, fulltestpath):
|
def runtest(scen, case, fulltestpath):
|
||||||
resultpath = bb.data.getVar('TEST_RESULT', d, 1)
|
resultpath = bb.data.getVar('TEST_RESULT', d, 1)
|
||||||
testpath = bb.data.getVar('TEST_DIR', d, 1)
|
tmppath = bb.data.getVar('TEST_TMP', d, 1)
|
||||||
|
|
||||||
"""initialize log file for testcase"""
|
"""initialize log file for testcase"""
|
||||||
logpath = bb.data.getVar('TEST_LOG', d, 1)
|
logpath = bb.data.getVar('TEST_LOG', d, 1)
|
||||||
|
@ -45,10 +46,9 @@ def qemuimagetest_main(d):
|
||||||
caselog = os.path.join(logpath, "%s/log_%s.%s" % (scen, case, bb.data.getVar('DATETIME', d, 1)))
|
caselog = os.path.join(logpath, "%s/log_%s.%s" % (scen, case, bb.data.getVar('DATETIME', d, 1)))
|
||||||
os.system("touch %s" % caselog)
|
os.system("touch %s" % caselog)
|
||||||
|
|
||||||
|
|
||||||
"""export TEST_TMP, TEST_RESULT, DEPLOY_DIR and QEMUARCH"""
|
"""export TEST_TMP, TEST_RESULT, DEPLOY_DIR and QEMUARCH"""
|
||||||
os.environ["PATH"] = bb.data.getVar("PATH", d, True)
|
os.environ["PATH"] = bb.data.getVar("PATH", d, True)
|
||||||
os.environ["TEST_TMP"] = testpath
|
os.environ["TEST_TMP"] = tmppath
|
||||||
os.environ["TEST_RESULT"] = resultpath
|
os.environ["TEST_RESULT"] = resultpath
|
||||||
os.environ["DEPLOY_DIR"] = bb.data.getVar("DEPLOY_DIR", d, True)
|
os.environ["DEPLOY_DIR"] = bb.data.getVar("DEPLOY_DIR", d, True)
|
||||||
os.environ["QEMUARCH"] = machine
|
os.environ["QEMUARCH"] = machine
|
||||||
|
@ -56,6 +56,7 @@ def qemuimagetest_main(d):
|
||||||
os.environ["DISPLAY"] = bb.data.getVar("DISPLAY", d, True)
|
os.environ["DISPLAY"] = bb.data.getVar("DISPLAY", d, True)
|
||||||
os.environ["POKYBASE"] = bb.data.getVar("POKYBASE", d, True)
|
os.environ["POKYBASE"] = bb.data.getVar("POKYBASE", d, True)
|
||||||
os.environ["TOPDIR"] = bb.data.getVar("TOPDIR", d, True)
|
os.environ["TOPDIR"] = bb.data.getVar("TOPDIR", d, True)
|
||||||
|
os.environ["SHARE_IMAGE"] = bb.data.getVar("SHARE_IMAGE", d, True)
|
||||||
|
|
||||||
"""run Test Case"""
|
"""run Test Case"""
|
||||||
bb.note("Run %s test in scenario %s" % (case, scen))
|
bb.note("Run %s test in scenario %s" % (case, scen))
|
||||||
|
@ -97,6 +98,18 @@ def qemuimagetest_main(d):
|
||||||
list.append((item, casefile, fulltestcase))
|
list.append((item, casefile, fulltestcase))
|
||||||
return list
|
return list
|
||||||
|
|
||||||
|
"""Clean tmp folder for testing"""
|
||||||
|
def clean_tmp():
|
||||||
|
tmppath = bb.data.getVar('TEST_TMP', d, 1)
|
||||||
|
|
||||||
|
if os.path.isdir(tmppath):
|
||||||
|
for f in os.listdir(tmppath):
|
||||||
|
tmpfile = os.path.join(tmppath, f)
|
||||||
|
os.remove(tmpfile)
|
||||||
|
|
||||||
|
"""Before running testing, clean temp folder first"""
|
||||||
|
clean_tmp()
|
||||||
|
|
||||||
"""check testcase folder and create test log folder"""
|
"""check testcase folder and create test log folder"""
|
||||||
testpath = bb.data.getVar('TEST_DIR', d, 1)
|
testpath = bb.data.getVar('TEST_DIR', d, 1)
|
||||||
bb.utils.mkdirhier(testpath)
|
bb.utils.mkdirhier(testpath)
|
||||||
|
@ -150,6 +163,9 @@ def qemuimagetest_main(d):
|
||||||
bb.note(line)
|
bb.note(line)
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
|
"""Clean temp files for testing"""
|
||||||
|
clean_tmp()
|
||||||
|
|
||||||
if ret != 0:
|
if ret != 0:
|
||||||
raise bb.build.FuncFailed("Some testcases fail, pls. check test result and test log!!!")
|
raise bb.build.FuncFailed("Some testcases fail, pls. check test result and test log!!!")
|
||||||
|
|
||||||
|
|
|
@ -156,6 +156,14 @@ ENABLE_BINARY_LOCALE_GENERATION = "1"
|
||||||
# list them like following.
|
# list them like following.
|
||||||
#TEST_SCEN = "sanity bat sanity:boot"
|
#TEST_SCEN = "sanity bat sanity:boot"
|
||||||
|
|
||||||
|
#Because of the QEMU booting slowness issue(see bug #646 and #618), autobuilder
|
||||||
|
#may suffer a timeout issue when running sanity test. We introduce variable
|
||||||
|
#SHARE_IMAGE here to fix the issue. It is by default set to 1. Poky will copy
|
||||||
|
#latest built-out image and keep using it in sanity testing. If it is set to 0,
|
||||||
|
#latest built-out image will be copied and tested for each case, which will take
|
||||||
|
#much time.
|
||||||
|
#SHARE_IMAGE = "1"
|
||||||
|
|
||||||
# Set GLIBC_GENERATE_LOCALES to the locales you wish to generate should you not
|
# Set GLIBC_GENERATE_LOCALES to the locales you wish to generate should you not
|
||||||
# wish to perform the time-consuming step of generating all LIBC locales.
|
# wish to perform the time-consuming step of generating all LIBC locales.
|
||||||
# NOTE: If removing en_US.UTF-8 you will also need to uncomment, and set
|
# NOTE: If removing en_US.UTF-8 you will also need to uncomment, and set
|
||||||
|
|
|
@ -383,9 +383,16 @@ Test_Create_Qemu()
|
||||||
TEST_ROOTFS_IMAGE="${TEST_TMP}/${QEMUTARGET}-${QEMUARCH}-test.ext3"
|
TEST_ROOTFS_IMAGE="${TEST_TMP}/${QEMUTARGET}-${QEMUARCH}-test.ext3"
|
||||||
|
|
||||||
CP=`which cp`
|
CP=`which cp`
|
||||||
|
|
||||||
|
# When SHARE_IMAGE is set, we use the existing image under tmp folder
|
||||||
if [ -e "$TEST_ROOTFS_IMAGE" ]; then
|
if [ -e "$TEST_ROOTFS_IMAGE" ]; then
|
||||||
|
if [ ${SHARE_IMAGE} -eq 1 ]; then
|
||||||
|
ROOTFS_IMAGE="$TEST_ROOTFS_IMAGE"
|
||||||
|
TEST_ROOTFS_IMAGE="${TEST_TMP}/${QEMUTARGET}-${QEMUARCH}-shared-test.ext3"
|
||||||
|
fi
|
||||||
rm -rf $TEST_ROOTFS_IMAGE
|
rm -rf $TEST_ROOTFS_IMAGE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$CP $ROOTFS_IMAGE $TEST_ROOTFS_IMAGE
|
$CP $ROOTFS_IMAGE $TEST_ROOTFS_IMAGE
|
||||||
|
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
. $POKYBASE/scripts/qemuimage-testlib
|
. $POKYBASE/scripts/qemuimage-testlib
|
||||||
|
|
||||||
TIMEOUT=360
|
TIMEOUT=200
|
||||||
RET=1
|
RET=1
|
||||||
|
|
||||||
# Start qemu and check its network
|
# Start qemu and check its network
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
. $POKYBASE/scripts/qemuimage-testlib
|
. $POKYBASE/scripts/qemuimage-testlib
|
||||||
|
|
||||||
TIMEOUT=360
|
TIMEOUT=200
|
||||||
RET=1
|
RET=1
|
||||||
|
|
||||||
# Start qemu and check its network
|
# Start qemu and check its network
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
. $POKYBASE/scripts/qemuimage-testlib
|
. $POKYBASE/scripts/qemuimage-testlib
|
||||||
|
|
||||||
TIMEOUT=360
|
TIMEOUT=200
|
||||||
RET=1
|
RET=1
|
||||||
|
|
||||||
# Start qemu and check its network
|
# Start qemu and check its network
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
. $POKYBASE/scripts/qemuimage-testlib
|
. $POKYBASE/scripts/qemuimage-testlib
|
||||||
|
|
||||||
TIMEOUT=360
|
TIMEOUT=200
|
||||||
RET=1
|
RET=1
|
||||||
|
|
||||||
# Start qemu and check its network
|
# Start qemu and check its network
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
. $POKYBASE/scripts/qemuimage-testlib
|
. $POKYBASE/scripts/qemuimage-testlib
|
||||||
|
|
||||||
TIMEOUT=360
|
TIMEOUT=200
|
||||||
RET=1
|
RET=1
|
||||||
SPID=0
|
SPID=0
|
||||||
i=0
|
i=0
|
||||||
|
|
|
@ -13,7 +13,12 @@
|
||||||
|
|
||||||
. $POKYBASE/scripts/qemuimage-testlib
|
. $POKYBASE/scripts/qemuimage-testlib
|
||||||
|
|
||||||
TIMEOUT=360
|
if [ $SHARE_IMAGE -eq 0 ]; then
|
||||||
|
TIMEOUT=200
|
||||||
|
elif [ $SHARE_IMAGE -eq 1 ]; then
|
||||||
|
TIMEOUT=500
|
||||||
|
fi
|
||||||
|
|
||||||
RET=1
|
RET=1
|
||||||
i=0
|
i=0
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
. $POKYBASE/scripts/qemuimage-testlib
|
. $POKYBASE/scripts/qemuimage-testlib
|
||||||
|
|
||||||
TIMEOUT=360
|
TIMEOUT=200
|
||||||
RET=1
|
RET=1
|
||||||
|
|
||||||
# Start qemu and check its network
|
# Start qemu and check its network
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
. $POKYBASE/scripts/qemuimage-testlib
|
. $POKYBASE/scripts/qemuimage-testlib
|
||||||
|
|
||||||
TIMEOUT=360
|
TIMEOUT=200
|
||||||
RET=1
|
RET=1
|
||||||
|
|
||||||
# Start qemu and check its network
|
# Start qemu and check its network
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
. $POKYBASE/scripts/qemuimage-testlib
|
. $POKYBASE/scripts/qemuimage-testlib
|
||||||
|
|
||||||
TIMEOUT=360
|
TIMEOUT=200
|
||||||
RET=1
|
RET=1
|
||||||
|
|
||||||
# Start qemu and check its network
|
# Start qemu and check its network
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
sanity shutdown
|
||||||
sanity boot
|
sanity boot
|
||||||
sanity ssh
|
sanity ssh
|
||||||
sanity scp
|
sanity scp
|
||||||
sanity dmesg
|
sanity dmesg
|
||||||
sanity shutdown
|
|
||||||
sanity zypper_help
|
sanity zypper_help
|
||||||
sanity zypper_search
|
sanity zypper_search
|
||||||
sanity rpm_query
|
sanity rpm_query
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
sanity shutdown
|
||||||
sanity boot
|
sanity boot
|
||||||
sanity ssh
|
sanity ssh
|
||||||
sanity scp
|
sanity scp
|
||||||
sanity dmesg
|
sanity dmesg
|
||||||
sanity shutdown
|
|
||||||
sanity zypper_help
|
sanity zypper_help
|
||||||
sanity zypper_search
|
sanity zypper_search
|
||||||
sanity rpm_query
|
sanity rpm_query
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
sanity shutdown
|
||||||
sanity boot
|
sanity boot
|
||||||
sanity ssh
|
sanity ssh
|
||||||
sanity scp
|
sanity scp
|
||||||
sanity dmesg
|
sanity dmesg
|
||||||
sanity shutdown
|
|
||||||
sanity zypper_help
|
sanity zypper_help
|
||||||
sanity zypper_search
|
sanity zypper_search
|
||||||
sanity rpm_query
|
sanity rpm_query
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
sanity shutdown
|
||||||
sanity boot
|
sanity boot
|
||||||
sanity ssh
|
sanity ssh
|
||||||
sanity scp
|
sanity scp
|
||||||
sanity dmesg
|
sanity dmesg
|
||||||
sanity shutdown
|
|
||||||
sanity zypper_help
|
sanity zypper_help
|
||||||
sanity zypper_search
|
sanity zypper_search
|
||||||
sanity rpm_query
|
sanity rpm_query
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
sanity shutdown
|
||||||
sanity boot
|
sanity boot
|
||||||
sanity ssh
|
sanity ssh
|
||||||
sanity scp
|
sanity scp
|
||||||
sanity dmesg
|
sanity dmesg
|
||||||
sanity shutdown
|
|
||||||
sanity zypper_help
|
sanity zypper_help
|
||||||
sanity zypper_search
|
sanity zypper_search
|
||||||
sanity rpm_query
|
sanity rpm_query
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
sanity shutdown
|
||||||
sanity boot
|
sanity boot
|
||||||
sanity ssh
|
sanity ssh
|
||||||
sanity scp
|
sanity scp
|
||||||
sanity dmesg
|
sanity dmesg
|
||||||
sanity shutdown
|
|
||||||
sanity zypper_help
|
sanity zypper_help
|
||||||
sanity zypper_search
|
sanity zypper_search
|
||||||
sanity rpm_query
|
sanity rpm_query
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
sanity shutdown
|
||||||
sanity boot
|
sanity boot
|
||||||
sanity ssh
|
sanity ssh
|
||||||
sanity scp
|
sanity scp
|
||||||
sanity dmesg
|
sanity dmesg
|
||||||
sanity shutdown
|
|
||||||
sanity zypper_help
|
sanity zypper_help
|
||||||
sanity zypper_search
|
sanity zypper_search
|
||||||
sanity rpm_query
|
sanity rpm_query
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
sanity shutdown
|
||||||
sanity boot
|
sanity boot
|
||||||
sanity ssh
|
sanity ssh
|
||||||
sanity scp
|
sanity scp
|
||||||
sanity dmesg
|
sanity dmesg
|
||||||
sanity shutdown
|
|
||||||
sanity zypper_help
|
sanity zypper_help
|
||||||
sanity zypper_search
|
sanity zypper_search
|
||||||
sanity rpm_query
|
sanity rpm_query
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
sanity shutdown
|
||||||
sanity boot
|
sanity boot
|
||||||
sanity ssh
|
sanity ssh
|
||||||
sanity scp
|
sanity scp
|
||||||
sanity dmesg
|
sanity dmesg
|
||||||
sanity shutdown
|
|
||||||
sanity zypper_help
|
sanity zypper_help
|
||||||
sanity zypper_search
|
sanity zypper_search
|
||||||
sanity rpm_query
|
sanity rpm_query
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
sanity shutdown
|
||||||
sanity boot
|
sanity boot
|
||||||
sanity ssh
|
sanity ssh
|
||||||
sanity scp
|
sanity scp
|
||||||
sanity dmesg
|
sanity dmesg
|
||||||
sanity shutdown
|
|
||||||
sanity zypper_help
|
sanity zypper_help
|
||||||
sanity zypper_search
|
sanity zypper_search
|
||||||
sanity rpm_query
|
sanity rpm_query
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
sanity shutdown
|
||||||
sanity boot
|
sanity boot
|
||||||
sanity ssh
|
sanity ssh
|
||||||
sanity scp
|
sanity scp
|
||||||
sanity dmesg
|
sanity dmesg
|
||||||
sanity shutdown
|
|
||||||
sanity zypper_help
|
sanity zypper_help
|
||||||
sanity zypper_search
|
sanity zypper_search
|
||||||
sanity rpm_query
|
sanity rpm_query
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
sanity shutdown
|
||||||
sanity boot
|
sanity boot
|
||||||
sanity ssh
|
sanity ssh
|
||||||
sanity scp
|
sanity scp
|
||||||
sanity dmesg
|
sanity dmesg
|
||||||
sanity shutdown
|
|
||||||
sanity zypper_help
|
sanity zypper_help
|
||||||
sanity zypper_search
|
sanity zypper_search
|
||||||
sanity rpm_query
|
sanity rpm_query
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
sanity shutdown
|
||||||
sanity boot
|
sanity boot
|
||||||
sanity ssh
|
sanity ssh
|
||||||
sanity scp
|
sanity scp
|
||||||
sanity dmesg
|
sanity dmesg
|
||||||
sanity shutdown
|
|
||||||
sanity zypper_help
|
sanity zypper_help
|
||||||
sanity zypper_search
|
sanity zypper_search
|
||||||
sanity rpm_query
|
sanity rpm_query
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
sanity shutdown
|
||||||
sanity boot
|
sanity boot
|
||||||
sanity ssh
|
sanity ssh
|
||||||
sanity scp
|
sanity scp
|
||||||
sanity dmesg
|
sanity dmesg
|
||||||
sanity shutdown
|
|
||||||
sanity zypper_help
|
sanity zypper_help
|
||||||
sanity zypper_search
|
sanity zypper_search
|
||||||
sanity rpm_query
|
sanity rpm_query
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
sanity shutdown
|
||||||
sanity boot
|
sanity boot
|
||||||
sanity ssh
|
sanity ssh
|
||||||
sanity scp
|
sanity scp
|
||||||
sanity dmesg
|
sanity dmesg
|
||||||
sanity shutdown
|
|
||||||
sanity zypper_help
|
sanity zypper_help
|
||||||
sanity zypper_search
|
sanity zypper_search
|
||||||
sanity rpm_query
|
sanity rpm_query
|
||||||
|
|
Loading…
Reference in New Issue