testimage.bbclass: Allow to run tests on autobuilder's images

With the change to the new framework data store dependecy was
removed, instead a new file is generated and used in testimage.
When testing builds from the autobuilders the test data values
are from the autobuilder, including the paths.

Some tests require paths to current environment in order to run,
this commit will update such paths and fix the error of running
images donwloaded from autobuilders.

[YOCTO #10964]

(From OE-Core rev: 26ad5105fc2ce03b7ee8ecc6911fd40a52bd573a)

Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mariano Lopez 2017-01-25 12:20:06 +00:00 committed by Richard Purdie
parent e8935e20d6
commit 1e88c8fce4
2 changed files with 14 additions and 4 deletions

View File

@ -80,12 +80,13 @@ TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'ipk', 'opkg-utils-na
TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'deb', 'apt-native:do_populate_sysroot', '', d)}"
TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'python-smartpm-native:do_populate_sysroot', '', d)}"
TESTIMAGELOCK = "${TMPDIR}/testimage.lock"
TESTIMAGELOCK_qemuall = ""
TESTIMAGE_DUMP_DIR ?= "/tmp/oe-saved-tests/"
TESTIMAGE_UPDATE_VARS ?= "WORKDIR DEPLOY_DIR"
testimage_dump_target () {
top -bn1
ps
@ -138,13 +139,12 @@ def testimage_sanity(d):
def testimage_main(d):
import os
import signal
import json
import sys
import signal
import logging
import time
from bb.utils import export_proxies
from oeqa.core.utils.misc import updateTestData
from oeqa.runtime.context import OERuntimeTestContext
from oeqa.runtime.context import OERuntimeTestContextExecutor
from oeqa.core.target.qemu import supported_fstypes
@ -166,6 +166,9 @@ def testimage_main(d):
tdname = "%s.testdata.json" % image_name
td = json.load(open(tdname, "r"))
# Some variables need to be updates (mostly paths) with the
# ones of the current environment because some tests require them.
updateTestData(d, td, d.getVar('TESTIMAGE_UPDATE_VARS').split())
image_manifest = "%s.manifest" % image_name
image_packages = OERuntimeTestContextExecutor.readPackagesManifest(image_manifest)

View File

@ -35,3 +35,10 @@ def dataStoteToDict(d, variables):
data[v] = d.getVar(v, True)
return data
def updateTestData(d, td, variables):
"""
Updates variables with values of data store to test data.
"""
for var in variables:
td[var] = d.getVar(var)