summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorStefan Stanacar <stefanx.stanacar@intel.com>2013-11-01 12:37:56 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-11-05 22:04:28 +0000
commit19aeca1cac9bed7851dd7ee45156d6024ab54498 (patch)
tree3e32fa3b4ca93ccab0da1d8f912256163c3c698d /meta
parent90c709da9b3e8d3167a0ecb6ef91f569a70fe285 (diff)
downloadpoky-19aeca1cac9bed7851dd7ee45156d6024ab54498.tar.gz
lib/oeqa: add oeTest superclass
Add oeTest superclass, make oeRuntimeTest inherit that and make the necesarry adjustments. Tests in lib/oeqa/runtime don't change, they still inherit oeRuntimeTest. We should do this because oetest.py in the future can be a base module for more stuff than oeRuntimeTest. (From OE-Core rev: cd4ed41a070bd52c446ac3df8337f17ab9421145) Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/lib/oeqa/oetest.py40
-rw-r--r--meta/lib/oeqa/utils/decorators.py10
2 files changed, 26 insertions, 24 deletions
diff --git a/meta/lib/oeqa/oetest.py b/meta/lib/oeqa/oetest.py
index 529abdc19a..3bb3589468 100644
--- a/meta/lib/oeqa/oetest.py
+++ b/meta/lib/oeqa/oetest.py
@@ -17,9 +17,9 @@ from oeqa.utils.sshcontrol import SSHControl
17def runTests(tc): 17def runTests(tc):
18 18
19 # set the context object passed from the test class 19 # set the context object passed from the test class
20 setattr(oeRuntimeTest, "tc", tc) 20 setattr(oeTest, "tc", tc)
21 # set ps command to use 21 # set ps command to use
22 setattr(oeRuntimeTest, "pscmd", "ps -ef" if oeRuntimeTest.hasPackage("procps") else "ps") 22 setattr(oeRuntimeTest, "pscmd", "ps -ef" if oeTest.hasPackage("procps") else "ps")
23 # prepare test suite, loader and runner 23 # prepare test suite, loader and runner
24 suite = unittest.TestSuite() 24 suite = unittest.TestSuite()
25 testloader = unittest.TestLoader() 25 testloader = unittest.TestLoader()
@@ -36,33 +36,28 @@ def runTests(tc):
36 36
37 37
38 38
39class oeRuntimeTest(unittest.TestCase): 39class oeTest(unittest.TestCase):
40 40
41 longMessage = True 41 longMessage = True
42 testFailures = [] 42 testFailures = []
43 testSkipped = [] 43 testSkipped = []
44 testErrors = [] 44 testErrors = []
45 45
46 def __init__(self, methodName='runTest'):
47 self.target = oeRuntimeTest.tc.target
48 super(oeRuntimeTest, self).__init__(methodName)
49
50
51 def run(self, result=None): 46 def run(self, result=None):
52 super(oeRuntimeTest, self).run(result) 47 super(oeTest, self).run(result)
53 48
54 # we add to our own lists the results, we use those for decorators 49 # we add to our own lists the results, we use those for decorators
55 if len(result.failures) > len(oeRuntimeTest.testFailures): 50 if len(result.failures) > len(oeTest.testFailures):
56 oeRuntimeTest.testFailures.append(str(result.failures[-1][0]).split()[0]) 51 oeTest.testFailures.append(str(result.failures[-1][0]).split()[0])
57 if len(result.skipped) > len(oeRuntimeTest.testSkipped): 52 if len(result.skipped) > len(oeTest.testSkipped):
58 oeRuntimeTest.testSkipped.append(str(result.skipped[-1][0]).split()[0]) 53 oeTest.testSkipped.append(str(result.skipped[-1][0]).split()[0])
59 if len(result.errors) > len(oeRuntimeTest.testErrors): 54 if len(result.errors) > len(oeTest.testErrors):
60 oeRuntimeTest.testErrors.append(str(result.errors[-1][0]).split()[0]) 55 oeTest.testErrors.append(str(result.errors[-1][0]).split()[0])
61 56
62 @classmethod 57 @classmethod
63 def hasPackage(self, pkg): 58 def hasPackage(self, pkg):
64 59
65 pkgfile = os.path.join(oeRuntimeTest.tc.d.getVar("WORKDIR", True), "installed_pkgs.txt") 60 pkgfile = os.path.join(oeTest.tc.d.getVar("WORKDIR", True), "installed_pkgs.txt")
66 61
67 with open(pkgfile) as f: 62 with open(pkgfile) as f:
68 data = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) 63 data = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
@@ -77,12 +72,19 @@ class oeRuntimeTest(unittest.TestCase):
77 @classmethod 72 @classmethod
78 def hasFeature(self,feature): 73 def hasFeature(self,feature):
79 74
80 if feature in oeRuntimeTest.tc.d.getVar("IMAGE_FEATURES", True).split() or \ 75 if feature in oeTest.tc.d.getVar("IMAGE_FEATURES", True).split() or \
81 feature in oeRuntimeTest.tc.d.getVar("DISTRO_FEATURES", True).split(): 76 feature in oeTest.tc.d.getVar("DISTRO_FEATURES", True).split():
82 return True 77 return True
83 else: 78 else:
84 return False 79 return False
85 80
81
82class oeRuntimeTest(oeTest):
83
84 def __init__(self, methodName='runTest'):
85 self.target = oeRuntimeTest.tc.target
86 super(oeRuntimeTest, self).__init__(methodName)
87
86 @classmethod 88 @classmethod
87 def restartTarget(self,params=None): 89 def restartTarget(self,params=None):
88 90
@@ -102,7 +104,7 @@ def getmodule(pos=2):
102 104
103def skipModule(reason, pos=2): 105def skipModule(reason, pos=2):
104 modname = getmodule(pos) 106 modname = getmodule(pos)
105 if modname not in oeRuntimeTest.tc.testsrequired: 107 if modname not in oeTest.tc.testsrequired:
106 raise unittest.SkipTest("%s: %s" % (modname, reason)) 108 raise unittest.SkipTest("%s: %s" % (modname, reason))
107 else: 109 else:
108 raise Exception("\nTest %s wants to be skipped.\nReason is: %s" \ 110 raise Exception("\nTest %s wants to be skipped.\nReason is: %s" \
diff --git a/meta/lib/oeqa/utils/decorators.py b/meta/lib/oeqa/utils/decorators.py
index 33fed5a10b..b99da8d76d 100644
--- a/meta/lib/oeqa/utils/decorators.py
+++ b/meta/lib/oeqa/utils/decorators.py
@@ -15,7 +15,7 @@ class skipIfFailure(object):
15 15
16 def __call__(self,f): 16 def __call__(self,f):
17 def wrapped_f(*args): 17 def wrapped_f(*args):
18 if self.testcase in (oeRuntimeTest.testFailures or oeRuntimeTest.testErrors): 18 if self.testcase in (oeTest.testFailures or oeTest.testErrors):
19 raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase) 19 raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase)
20 return f(*args) 20 return f(*args)
21 wrapped_f.__name__ = f.__name__ 21 wrapped_f.__name__ = f.__name__
@@ -28,7 +28,7 @@ class skipIfSkipped(object):
28 28
29 def __call__(self,f): 29 def __call__(self,f):
30 def wrapped_f(*args): 30 def wrapped_f(*args):
31 if self.testcase in oeRuntimeTest.testSkipped: 31 if self.testcase in oeTest.testSkipped:
32 raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase) 32 raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase)
33 return f(*args) 33 return f(*args)
34 wrapped_f.__name__ = f.__name__ 34 wrapped_f.__name__ = f.__name__
@@ -41,9 +41,9 @@ class skipUnlessPassed(object):
41 41
42 def __call__(self,f): 42 def __call__(self,f):
43 def wrapped_f(*args): 43 def wrapped_f(*args):
44 if self.testcase in oeRuntimeTest.testSkipped or \ 44 if self.testcase in oeTest.testSkipped or \
45 self.testcase in oeRuntimeTest.testFailures or \ 45 self.testcase in oeTest.testFailures or \
46 self.testcase in oeRuntimeTest.testErrors: 46 self.testcase in oeTest.testErrors:
47 raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase) 47 raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase)
48 return f(*args) 48 return f(*args)
49 wrapped_f.__name__ = f.__name__ 49 wrapped_f.__name__ = f.__name__