summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa/core
diff options
context:
space:
mode:
Diffstat (limited to 'meta/lib/oeqa/core')
-rw-r--r--meta/lib/oeqa/core/runner.py70
1 files changed, 29 insertions, 41 deletions
diff --git a/meta/lib/oeqa/core/runner.py b/meta/lib/oeqa/core/runner.py
index eeb625b7ff..f1dd08014c 100644
--- a/meta/lib/oeqa/core/runner.py
+++ b/meta/lib/oeqa/core/runner.py
@@ -76,40 +76,43 @@ class OETestResult(_TestResult):
76 else: 76 else:
77 msg = "%s - FAIL - Required tests failed" % component 77 msg = "%s - FAIL - Required tests failed" % component
78 skipped = len(self.skipped) 78 skipped = len(self.skipped)
79 if skipped: 79 if skipped:
80 msg += " (skipped=%d)" % skipped 80 msg += " (skipped=%d)" % skipped
81 self.tc.logger.info(msg) 81 self.tc.logger.info(msg)
82 82
83 def _getDetailsNotPassed(self, case, type, desc): 83 def _getTestResultDetails(self, case):
84 found = False 84 result_types = {'failures': 'FAILED', 'errors': 'ERROR', 'skipped': 'SKIPPED',
85 'expectedFailures': 'EXPECTEDFAIL', 'successes': 'PASSED'}
85 86
86 for (scase, msg) in getattr(self, type): 87 for rtype in result_types:
87 if case.id() == scase.id(): 88 found = False
88 found = True 89 for (scase, msg) in getattr(self, rtype):
89 break 90 if case.id() == scase.id():
90 scase_str = str(scase.id())
91
92 # When fails at module or class level the class name is passed as string
93 # so figure out to see if match
94 m = re.search("^setUpModule \((?P<module_name>.*)\)$", scase_str)
95 if m:
96 if case.__class__.__module__ == m.group('module_name'):
97 found = True 91 found = True
98 break 92 break
93 scase_str = str(scase.id())
99 94
100 m = re.search("^setUpClass \((?P<class_name>.*)\)$", scase_str) 95 # When fails at module or class level the class name is passed as string
101 if m: 96 # so figure out to see if match
102 class_name = "%s.%s" % (case.__class__.__module__, 97 m = re.search("^setUpModule \((?P<module_name>.*)\)$", scase_str)
103 case.__class__.__name__) 98 if m:
99 if case.__class__.__module__ == m.group('module_name'):
100 found = True
101 break
104 102
105 if class_name == m.group('class_name'): 103 m = re.search("^setUpClass \((?P<class_name>.*)\)$", scase_str)
106 found = True 104 if m:
107 break 105 class_name = "%s.%s" % (case.__class__.__module__,
106 case.__class__.__name__)
107
108 if class_name == m.group('class_name'):
109 found = True
110 break
108 111
109 if found: 112 if found:
110 return (found, msg) 113 return result_types[rtype], msg
111 114
112 return (found, None) 115 return 'UNKNOWN', None
113 116
114 def addSuccess(self, test): 117 def addSuccess(self, test):
115 #Added so we can keep track of successes too 118 #Added so we can keep track of successes too
@@ -121,17 +124,7 @@ class OETestResult(_TestResult):
121 for case_name in self.tc._registry['cases']: 124 for case_name in self.tc._registry['cases']:
122 case = self.tc._registry['cases'][case_name] 125 case = self.tc._registry['cases'][case_name]
123 126
124 result_types = ['failures', 'errors', 'skipped', 'expectedFailures', 'successes'] 127 (status, log) = self._getTestResultDetails(case)
125 result_desc = ['FAILED', 'ERROR', 'SKIPPED', 'EXPECTEDFAIL', 'PASSED']
126
127 fail = False
128 desc = None
129 for idx, name in enumerate(result_types):
130 (fail, msg) = self._getDetailsNotPassed(case, result_types[idx],
131 result_desc[idx])
132 if fail:
133 desc = result_desc[idx]
134 break
135 128
136 oeid = -1 129 oeid = -1
137 if hasattr(case, 'decorators'): 130 if hasattr(case, 'decorators'):
@@ -143,12 +136,7 @@ class OETestResult(_TestResult):
143 if case.id() in self.starttime and case.id() in self.endtime: 136 if case.id() in self.starttime and case.id() in self.endtime:
144 t = " (" + "{0:.2f}".format(self.endtime[case.id()] - self.starttime[case.id()]) + "s)" 137 t = " (" + "{0:.2f}".format(self.endtime[case.id()] - self.starttime[case.id()]) + "s)"
145 138
146 if fail: 139 self.tc.logger.info("RESULTS - %s - Testcase %s: %s%s" % (case.id(), oeid, status, t))
147 self.tc.logger.info("RESULTS - %s - Testcase %s: %s%s" % (case.id(),
148 oeid, desc, t))
149 else:
150 self.tc.logger.info("RESULTS - %s - Testcase %s: %s%s" % (case.id(),
151 oeid, 'UNKNOWN', t))
152 140
153class OEListTestsResult(object): 141class OEListTestsResult(object):
154 def wasSuccessful(self): 142 def wasSuccessful(self):