oeqa/oetest.py: Add class ExportTestContext

Adding the class is needed to separate the exported test
from the test image; both test run under different conditions,
i.e. an exported test doesn't require to change the signal
handling.

This change adds clasess ExportTestContext and ImageTestContext,
both of them inherits from RuntimeTestContext. Also refactors
RuntimeTestContext class, to keep the code common in this class.

(From OE-Core rev: ef9618a6e7f99e485cc6b59484d11807475c7823)

Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mariano Lopez 2016-05-02 13:19:14 +00:00 committed by Richard Purdie
parent e090775f7e
commit a9eb22e3d3

View File

@ -331,14 +331,13 @@ class TestContext(object):
return runner.run(self.suite)
class ImageTestContext(TestContext):
def __init__(self, d, target, host_dumper):
super(ImageTestContext, self).__init__(d)
class RuntimeTestContext(TestContext):
def __init__(self, d, target):
super(RuntimeTestContext, self).__init__(d)
self.tagexp = d.getVar("TEST_SUITES_TAGS", True)
self.target = target
self.host_dumper = host_dumper
manifest = os.path.join(d.getVar("DEPLOY_DIR_IMAGE", True),
d.getVar("IMAGE_LINK_NAME", True) + ".manifest")
@ -352,15 +351,6 @@ class ImageTestContext(TestContext):
else:
self.pkgmanifest = ""
self.sigterm = False
self.origsigtermhandler = signal.getsignal(signal.SIGTERM)
signal.signal(signal.SIGTERM, self._sigterm_exception)
def _sigterm_exception(self, signum, stackframe):
bb.warn("TestImage received SIGTERM, shutting down...")
self.sigterm = True
self.target.stop()
def _get_test_namespace(self):
return "runtime"
@ -382,9 +372,29 @@ class ImageTestContext(TestContext):
return [t for t in self.d.getVar("TEST_SUITES", True).split() if t != "auto"]
def loadTests(self):
super(ImageTestContext, self).loadTests()
super(RuntimeTestContext, self).loadTests()
setattr(oeRuntimeTest, "pscmd", "ps -ef" if oeTest.hasPackage("procps") else "ps")
class ImageTestContext(RuntimeTestContext):
def __init__(self, d, target, host_dumper):
super(ImageTestContext, self).__init__(d, target)
self.host_dumper = host_dumper
self.sigterm = False
self.origsigtermhandler = signal.getsignal(signal.SIGTERM)
signal.signal(signal.SIGTERM, self._sigterm_exception)
def _sigterm_exception(self, signum, stackframe):
bb.warn("TestImage received SIGTERM, shutting down...")
self.sigterm = True
self.target.stop()
class ExportTestContext(RuntimeTestContext):
def __init__(self, d, target):
super(ExportTestContext, self).__init__(d, target)
self.sigterm = None
class SDKTestContext(TestContext):
def __init__(self, d, sdktestdir, sdkenv, tcname, *args):
super(SDKTestContext, self).__init__(d)