diff options
| -rw-r--r-- | meta/lib/oeqa/core/runner.py | 70 |
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 | ||
| 134 | class OEListTestsResult(object): | 122 | class OEListTestsResult(object): |
| 135 | def wasSuccessful(self): | 123 | def wasSuccessful(self): |
