summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 429c216a69..a7b7463388 100644
--- a/meta/lib/oeqa/core/runner.py
+++ b/meta/lib/oeqa/core/runner.py
@@ -61,40 +61,43 @@ class OETestResult(_TestResult):
61 else: 61 else:
62 msg = "%s - FAIL - Required tests failed" % component 62 msg = "%s - FAIL - Required tests failed" % component
63 skipped = len(self.skipped) 63 skipped = len(self.skipped)
64 if skipped: 64 if skipped:
65 msg += " (skipped=%d)" % skipped 65 msg += " (skipped=%d)" % skipped
66 self.tc.logger.info(msg) 66 self.tc.logger.info(msg)
67 67
68 def _getDetailsNotPassed(self, case, type, desc): 68 def _getTestResultDetails(self, case):
69 found = False 69 result_types = {'failures': 'FAILED', 'errors': 'ERROR', 'skipped': 'SKIPPED',
70 'expectedFailures': 'EXPECTEDFAIL', 'successes': 'PASSED'}
70 71
71 for (scase, msg) in getattr(self, type): 72 for rtype in result_types:
72 if case.id() == scase.id(): 73 found = False
73 found = True 74 for (scase, msg) in getattr(self, rtype):
74 break 75 if case.id() == scase.id():
75 scase_str = str(scase.id())
76
77 # When fails at module or class level the class name is passed as string
78 # so figure out to see if match
79 m = re.search("^setUpModule \((?P<module_name>.*)\)$", scase_str)
80 if m:
81 if case.__class__.__module__ == m.group('module_name'):
82 found = True 76 found = True
83 break 77 break
78 scase_str = str(scase.id())
84 79
85 m = re.search("^setUpClass \((?P<class_name>.*)\)$", scase_str) 80 # When fails at module or class level the class name is passed as string
86 if m: 81 # so figure out to see if match
87 class_name = "%s.%s" % (case.__class__.__module__, 82 m = re.search("^setUpModule \((?P<module_name>.*)\)$", scase_str)
88 case.__class__.__name__) 83 if m:
84 if case.__class__.__module__ == m.group('module_name'):
85 found = True
86 break
89 87
90 if class_name == m.group('class_name'): 88 m = re.search("^setUpClass \((?P<class_name>.*)\)$", scase_str)
91 found = True 89 if m:
92 break 90 class_name = "%s.%s" % (case.__class__.__module__,
91 case.__class__.__name__)
92
93 if class_name == m.group('class_name'):
94 found = True
95 break
93 96
94 if found: 97 if found:
95 return (found, msg) 98 return result_types[rtype], msg
96 99
97 return (found, None) 100 return 'UNKNOWN', None
98 101
99 def addSuccess(self, test): 102 def addSuccess(self, test):
100 #Added so we can keep track of successes too 103 #Added so we can keep track of successes too
@@ -106,17 +109,7 @@ class OETestResult(_TestResult):
106 for case_name in self.tc._registry['cases']: 109 for case_name in self.tc._registry['cases']:
107 case = self.tc._registry['cases'][case_name] 110 case = self.tc._registry['cases'][case_name]
108 111
109 result_types = ['failures', 'errors', 'skipped', 'expectedFailures', 'successes'] 112 (status, log) = self._getTestResultDetails(case)
110 result_desc = ['FAILED', 'ERROR', 'SKIPPED', 'EXPECTEDFAIL', 'PASSED']
111
112 fail = False
113 desc = None
114 for idx, name in enumerate(result_types):
115 (fail, msg) = self._getDetailsNotPassed(case, result_types[idx],
116 result_desc[idx])
117 if fail:
118 desc = result_desc[idx]
119 break
120 113
121 oeid = -1 114 oeid = -1
122 if hasattr(case, 'decorators'): 115 if hasattr(case, 'decorators'):
@@ -124,12 +117,7 @@ class OETestResult(_TestResult):
124 if hasattr(d, 'oeid'): 117 if hasattr(d, 'oeid'):
125 oeid = d.oeid 118 oeid = d.oeid
126 119
127 if fail: 120 self.tc.logger.info("RESULTS - %s - Testcase %s: %s" % (case.id(), oeid, status))
128 self.tc.logger.info("RESULTS - %s - Testcase %s: %s" % (case.id(),
129 oeid, desc))
130 else:
131 self.tc.logger.info("RESULTS - %s - Testcase %s: %s" % (case.id(),
132 oeid, 'UNKNOWN'))
133 121
134class OEListTestsResult(object): 122class OEListTestsResult(object):
135 def wasSuccessful(self): 123 def wasSuccessful(self):