From 9f1de230fb885ae6e889edcde0c23b55057d1ad7 Mon Sep 17 00:00:00 2001
From: Tom Pollard <tom.pollard@codethink.co.uk>
Date: Thu, 19 Jul 2018 18:03:40 +0100
Subject: [PATCH] widget.py: Limit failure summary to currently failing
 elements

Change widget.py print_summary() to only print the failure
messages of elements in the Failure Summary that failed on the
current try.
---
 buildstream/_frontend/widget.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/buildstream/_frontend/widget.py b/buildstream/_frontend/widget.py
index dab8cab56c..1bae73ca07 100644
--- a/buildstream/_frontend/widget.py
+++ b/buildstream/_frontend/widget.py
@@ -522,12 +522,15 @@ class LogLine(Widget):
             text += "\n\n"
 
         if self._failure_messages:
-            text += self.content_profile.fmt("Failure Summary\n", bold=True)
             values = OrderedDict()
 
             for element, messages in sorted(self._failure_messages.items(), key=lambda x: x[0].name):
-                values[element.name] = ''.join(self._render(v) for v in messages)
-            text += self._format_values(values, style_value=False)
+                for queue in stream.queues:
+                    if any(el.name == element.name for el in queue.failed_elements):
+                        values[element.name] = ''.join(self._render(v) for v in messages)
+            if values:
+                text += self.content_profile.fmt("Failure Summary\n", bold=True)
+                text += self._format_values(values, style_value=False)
 
         text += self.content_profile.fmt("Pipeline Summary\n", bold=True)
         values = OrderedDict()
-- 
GitLab