[Piglit] [PATCH 4/8] framework: Remove micro-optimization with no impact.
Dylan Baker
baker.dylan.c at gmail.com
Wed Sep 18 15:14:55 PDT 2013
On Wednesday 18 September 2013 15:00:29 Eric Anholt wrote:
> We can compute these lists anyway. Note how we don't really do much
> work to generate
> ---
> framework/summary.py | 59
> ++++++++++++++++++++-------------------------------- 1 file changed, 23
> insertions(+), 36 deletions(-)
>
> diff --git a/framework/summary.py b/framework/summary.py
> index 656efc0..8f6f5f7 100644
> --- a/framework/summary.py
> +++ b/framework/summary.py
> @@ -397,19 +397,10 @@ class Summary:
> # Create a list with all the test names in it
> self.tests['all'] = set(self.tests['all']) | set(each.tests)
>
> - def __generate_lists(self, lists):
> + def __generate_lists(self):
> """
> Private: Generate the lists of changes, problems, regressions,
> fixes, and skips
> -
> - lists is a list contianing any of the following: changes, problems,
> - skips, fixes (which will also generate regressions)
> -
> - This method has different code paths to allow the exclusion of
> certain - lists being generated. This is both useful for speeding up
> HTML - generation when a page isn't needed (regressions with only
> one test - file is provided), and for JUnit and text which only need
> a limited - subset of these lists
> """
> def find_regressions(status):
> """
> @@ -441,31 +432,27 @@ class Summary:
> status_text.append(s)
> status.append(find_regressions(s))
>
> - if 'changes' in lists:
> - # Check and append self.tests['changes']
> - # A set cannot contain duplicate entries, so creating a set
> - # 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'].add(test)
> -
> - if 'problems' in lists:
> - for i in status_text:
> - if i not in ['pass', 'skip', 'special']:
> - self.tests['problems'].add(test)
> -
> - if 'skipped' in lists:
> - if 'skip' in status_text:
> - 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'].add(test)
> - if status[i] > 1 and status[i + 1] == 1:
> - self.tests['fixes'].add(test)
> + # Check and append self.tests['changes']
> + # A set cannot contain duplicate entries, so creating a set
> + # 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'].add(test)
> +
> + for i in status_text:
> + if i not in ['pass', 'skip', 'special']:
> + self.tests['problems'].add(test)
> +
> + if 'skip' in status_text:
> + self.tests['skipped'].add(test)
> +
> + # 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'].add(test)
> + if status[i] > 1 and status[i + 1] == 1:
> + self.tests['fixes'].add(test)
>
> def __find_totals(self):
> """
> @@ -560,7 +547,7 @@ class Summary:
> else:
> pages = ['problems', 'skipped']
>
> - self.__generate_lists(pages)
> + self.__generate_lists()
>
> # Index.html is a bit of a special case since there is index, all,
> and # alltests, where the other pages all use the same name. ie,
IIRC there is a pretty major performance difference as more tests are added to
the list, but if there isn't then could we just fold this back into the
constructor, as it was originally?
-------------- 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/bf5daf84/attachment.pgp>
More information about the Piglit
mailing list