Merge pull request #12096 from malekaifa/fix/sanitizer-summary-write

fix(tools): report sanitizer summary write failures
This commit is contained in:
Dean authored and GitHub committed 2026-10-29 05:06:02 +13:00
commit b05c8ca775
2 files changed
+12 -3

No files matched your search

+3 -3
View File
@@ -123,13 +123,13 @@ def main(argv=None):
try:
known = load_known(args.known, args.sanitizer) if args.known else {}
text, failing = summarize(args.title, results(args.junit), known, reports(args.junit))
if args.summary:
with args.summary.open("a", encoding="utf-8") as summary:
summary.write(text)
except (OSError, ET.ParseError, ValueError) as error:
print(f"sanitizer_report: {error}", file=sys.stderr)
return 2
sys.stdout.write(text)
if args.summary:
with args.summary.open("a", encoding="utf-8") as summary:
summary.write(text)
return 1 if failing else 0
+9
View File
@@ -107,6 +107,15 @@ class SanitizerReportTests(unittest.TestCase):
self.assertEqual(summary.read_text(encoding="utf-8"), "existing\n" + stdout)
self.assertTrue(stdout.startswith("### Nightly\n"))
def test_summary_write_failure_is_reported_without_a_successful_report(self):
summary = Path(self.directory.name) / "missing" / "summary.md"
code, stdout, stderr = self.run_main(self.write(suite(case("passes"))), "--summary", summary)
self.assertEqual(code, 2)
self.assertEqual(stdout, "")
self.assertIn(summary.name, stderr)
self.assertTrue(stderr.startswith("sanitizer_report: "))
self.assertNotIn("Traceback", stderr)
def write_known(self, *lines):
return self.write("\n".join(lines) + "\n", "known.txt")