From 399ce8699884c80d103a3d38441d15b60d661d6a Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Wed, 15 Feb 2023 22:02:56 -0300 Subject: [PATCH] validate:launcher: Handle known return code issue in none validate based tests Part-of: --- subprojects/gst-devtools/validate/launcher/baseclasses.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/subprojects/gst-devtools/validate/launcher/baseclasses.py b/subprojects/gst-devtools/validate/launcher/baseclasses.py index 0368c3f..d5d8054 100644 --- a/subprojects/gst-devtools/validate/launcher/baseclasses.py +++ b/subprojects/gst-devtools/validate/launcher/baseclasses.py @@ -389,6 +389,13 @@ class Test(Loggable): if result not in [Result.PASSED, Result.NOT_RUN, Result.SKIPPED]: self.add_known_issue_information() + def expected_return_codes(self): + res = [] + for issue in self.expected_issues: + if 'returncode' in issue: + res.append(issue['returncode']) + return res + def check_results(self): if self.result is Result.FAILED or self.result is Result.TIMEOUT: return @@ -397,6 +404,10 @@ class Test(Loggable): if self.options.rr and self.process.returncode == -signal.SIGPIPE: self.set_result(Result.SKIPPED, "SIGPIPE received under `rr`, known issue.") elif self.process.returncode == 0: + for issue in self.expected_issues: + if issue['returncode'] != 0 and not issue.get("sometimes", False): + self.set_result(Result.ERROR, "Expected return code %d" % issue['returncode']) + return self.set_result(Result.PASSED) elif self.process.returncode in EXITING_SIGNALS: self.add_stack_trace_to_logfile() @@ -405,6 +416,8 @@ class Test(Loggable): EXITING_SIGNALS[self.process.returncode])) elif self.process.returncode == VALGRIND_ERROR_CODE: self.set_result(Result.FAILED, "Valgrind reported errors") + elif self.process.returncode in self.expected_return_codes(): + self.set_result(Result.KNOWN_ERROR) else: self.set_result(Result.FAILED, "Application returned %d" % (self.process.returncode)) -- 2.7.4