[Piglit] [PATCH 2/8] framework: Make the set of tests per page always be a set.
Dylan Baker
baker.dylan.c at gmail.com
Wed Sep 18 15:23:02 PDT 2013
On Wednesday 18 September 2013 15:00:27 Eric Anholt wrote:
> Starting with appending to the dictionary entry as a list, then making
> the entry into a set later is pretty weird. Just always use a set.
> ---
> framework/summary.py | 24 ++++++++----------------
> 1 file changed, 8 insertions(+), 16 deletions(-)
>
> diff --git a/framework/summary.py b/framework/summary.py
> index 3f9b883..26bdda9 100644
> --- a/framework/summary.py
> +++ b/framework/summary.py
> @@ -383,8 +383,8 @@ class Summary:
>
> self.status = {}
> self.fractions = {}
> - self.tests = {'all': [], 'changes': [], 'problems': [], 'skipped':
> [], - 'regressions': [], 'fixes': []}
> + self.tests = {'all': set(), 'changes': set(), 'problems': set(),
> 'skipped': set(), + 'regressions': set(), 'fixes':
> set()}
>
> for each in self.results:
> # Build a dict of the status output of all of the tests, with
> the @@ -395,7 +395,7 @@ class Summary:
> self.status.update({each.name: status})
>
> # Create a list with all the test names in it
> - self.tests['all'] = list(set(self.tests['all']) |
> set(each.tests)) + self.tests['all'] = set(self.tests['all']) |
> set(each.tests)
>
> def __generate_lists(self, lists):
> """
> @@ -444,36 +444,28 @@ class Summary:
> # out the list will reduce it's length to 1 if all entries
> # are the same, meaning it is not a change
> if len(set(status)) > 1:
> - self.tests['changes'].append(test)
> + self.tests['changes'].add(test)
>
> if 'problems' in lists:
> # If the result contains a value other than 1 (pass) or 4
> # (skip) it is a problem. Skips are not problems becasuse
> # they have Their own page.
> if [i for e in [2, 3, 5] for i in status if e is i]:
> - self.tests['problems'].append(test)
> + self.tests['problems'].add(test)
>
> if 'skipped' in lists:
> # Find all tests with a status of skip
> if 4 in status:
> - self.tests['skipped'].append(test)
> + self.tests['skipped'].add(test)
>
> if 'fixes' in lists:
> # Find both fixes and regressions, and append them to the
> # proper lists
> for i in xrange(len(status) - 1):
> if status[i] < status[i + 1] and status[i] != 0:
> - self.tests['regressions'].append(test)
> + self.tests['regressions'].add(test)
> if status[i] > 1 and status[i + 1] == 1:
> - self.tests['fixes'].append(test)
> -
> - # Remove duplicate entries from the status lists
> - # If there are 4+ results can result in mutiple passes or
> regressions - # and changes in 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)
> + self.tests['fixes'].add(test)
>
> def __find_totals(self):
> """
This of course makes sense.
Reviewed-by: Dylan Baker <baker.dylan.c at gmail.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20130918/a933862b/attachment-0001.pgp>
More information about the Piglit
mailing list