diff options
authorAlexis Lothoré <>2024-02-05 16:57:30 +0100
committerRichard Purdie <>2024-02-06 10:31:25 +0000
commit3567c21af8ed65448f9325ee3fe85b8be839e1b5 (patch)
parentc2ba125dc30fb1ef0bf96152863db22159f4b31c (diff)
patchtest-send-results: properly parse test status
patchtest-send-results currently search the word "FAIL" in the whole testresults file to decide whether it should send a report to patch submitter or not. This global search can lead to false positives, for example if the commit subject contains the word "FAIL" (as observed in [1]) Prevent those false positives by explicitely parsing the test status from each line. Each test result line, generated by the patchtest script, is expected to have the following format: <STATUS>: <some info, depending on the status> [1] Signed-off-by: Alexis Lothoré <> Signed-off-by: Richard Purdie <>
1 files changed, 4 insertions, 1 deletions
diff --git a/scripts/patchtest-send-results b/scripts/patchtest-send-results
index 024be003ce..075b60d8f7 100755
--- a/scripts/patchtest-send-results
+++ b/scripts/patchtest-send-results
@@ -33,6 +33,9 @@ under 'Yocto Project Subprojects'). For more information on specific
failures, see: Thank
+def has_a_failed_test(raw_results):
+ return any(raw_result.split(':')[0] == "FAIL" for raw_result in raw_results.splitlines())
parser = argparse.ArgumentParser(description="Send patchtest results to a submitter for a given patch")
parser.add_argument("-p", "--patch", dest="patch", required=True, help="The patch file to summarize")
args = parser.parse_args()
@@ -69,7 +72,7 @@ from_address = ""
# mailing list to CC
cc_address = ""
-if "FAIL" in testresult:
+if has_a_failed_test(testresult):
reply_contents = None
if len(max(open(result_file, 'r'), key=len)) > 220:
warning = "Tests failed for the patch, but the results log could not be processed due to excessive result line length."