[Piglit] [PATCH] summary.py: Replace path separators in testrun names

Ilia Mirkin imirkin at alum.mit.edu
Thu Sep 4 13:59:09 PDT 2014


On Thu, Sep 4, 2014 at 4:54 PM, Dylan Baker <baker.dylan.c at gmail.com> wrote:
> This solves the bug of running piglit run -n 'wip/foo' which causes a
> number of issues in the html summary generation.
>
> CC: Jason Ekstrand <jason at jlekstrand.net>
> Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>

Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

> ---
>  framework/summary.py | 14 ++++++++++----
>  1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/framework/summary.py b/framework/summary.py
> index d1b737b..debd6a7 100644
> --- a/framework/summary.py
> +++ b/framework/summary.py
> @@ -47,6 +47,11 @@ def escape_filename(key):
>      return re.sub(r'[<>:"|?*#]', '_', key)
>
>
> +def escape_pathname(key):
> +    """ Remove / and \\ from names """
> +    return re.sub(r'[/\\]', '_', key)
> +
> +
>  def normalize_href(href):
>      """Force backward slashes in URLs."""
>      return href.replace('\\', '/')
> @@ -113,7 +118,7 @@ class HTMLIndex(list):
>          self._newRow()
>          self.append({'type': 'other', 'text': '<td />'})
>          for each in summary.results:
> -            href = posixpath.join(each.name, "index.html")
> +            href = posixpath.join(escape_pathname(each.name), "index.html")
>              href = normalize_href(href)
>              self.append({'type': 'other',
>                           'text': '<td class="head"><b>%(name)s</b><br />'
> @@ -454,7 +459,8 @@ class Summary:
>
>          # Iterate across the tests creating the various test specific files
>          for each in self.results:
> -            os.mkdir(path.join(destination, each.name))
> +            name = escape_pathname(each.name)
> +            os.mkdir(path.join(destination, name))
>
>              if each.time_elapsed is not None:
>                  time = datetime.timedelta(0, each.time_elapsed)
> @@ -463,7 +469,7 @@ class Summary:
>
>              self.__find_totals(each)
>
> -            with open(path.join(destination, each.name, "index.html"), 'w') as out:
> +            with open(path.join(destination, name, "index.html"), 'w') as out:
>                  out.write(testindex.render(name=each.name,
>                                             totals=self.totals,
>                                             time=time,
> @@ -474,7 +480,7 @@ class Summary:
>
>              # Then build the individual test results
>              for key, value in each.tests.iteritems():
> -                html_path = path.join(destination, each.name, escape_filename(key + ".html"))
> +                html_path = path.join(destination, name, escape_filename(key + ".html"))
>                  temp_path = path.dirname(html_path)
>
>                  if value['result'] not in exclude:
> --
> 2.1.0
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit


More information about the Piglit mailing list