[Piglit] [PATCH] summary.py: Fix duplicate entries bug

Dylan Baker baker.dylan.c at gmail.com
Mon Jul 15 18:49:13 PDT 2013

The current behavior is that changes fixes and regressions are
calculated by comparing result[i] against result[i++], of course when
there are four or more results provided a test could regress or be fixed
twice. This causes them to be added to the list multiple times, and thus
written into the HTML or text more than once.

This patch corrects this behavior by converting the list to a set before
passing it along to mako or to be printed. Since a set can only hold
unique values this prevents it from being printed more than once.

CC: Chris Forbes <chrisf at ijw.co.nz>
Signed-off-by: Dylan Baker <baker.dylan.c at gmail.com>
 framework/summary.py | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/framework/summary.py b/framework/summary.py
index 2eb3226..811e36c 100644
--- a/framework/summary.py
+++ b/framework/summary.py
@@ -464,6 +464,14 @@ class Summary:
                         if status[i] > 1 and status[i + 1] == 1:
+        # Remove duplicate entries from the status lists
+        # If there are 4+ results can result in mutiple passes or regressions
+        # and changes # other words: "pass fail pass fail" will result in a
+        # regression, a fix, and a regression and it will be printed twice in
+        # the summary. Turning them into sets remove duplicates
+        for (result, value) in self.tests.items():
+            self.tests[result] = set(value)
     def __find_totals(self):
         Private: Find the total number of pass, fail, crash, skip, and warn in

More information about the Piglit mailing list