]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Log assertion failures right after test result
authorNicki Křížek <nicki@isc.org>
Thu, 26 Jun 2025 16:20:06 +0000 (18:20 +0200)
committerNicki Křížek <nicki@isc.org>
Fri, 27 Jun 2025 14:31:49 +0000 (16:31 +0200)
The extra messages are typically traceback from assertion failures.
Previously, they'd be printed only after all individual test case
results have been printed. That made it difficult to pair the traceback
to the failing test in some cases, as the node information (aka test
name) might not always be present.

Instead, log any extra messages related to a particular test failure
directly after reporting its result, making the failure details more
readily available and easy to connect with a particular test case.

bin/tests/system/conftest.py

index ee87d618b49472b9ac8bc7ecdd201b0e48cbb512..d23a4571fca0875fb5c23d2c3bc0d8951945a554 100644 (file)
@@ -360,13 +360,13 @@ def system_test_dir(request, system_test_name, expected_artifacts):
             if node.nodeid in all_test_results
         }
         assert len(test_results)
-        messages = []
         for node, result in test_results.items():
-            isctest.log.debug("%s %s", result.outcome.upper(), node)
-            messages.extend(result.messages.values())
-        for message in messages:
-            if message:
-                isctest.log.debug("\n" + message)
+            message = f"{result.outcome.upper()} {node}"
+            nonempty_extra = [msg for msg in result.messages.values() if msg.strip()]
+            if nonempty_extra:
+                message += "\n"
+                message += "\n\n".join(nonempty_extra)
+            isctest.log.debug(message)
         failed = any(res.outcome == "failed" for res in test_results.values())
         skipped = any(res.outcome == "skipped" for res in test_results.values())
         if failed: