[Piglit] [PATCH] framework/summary.py: Properly handle unicode literals in output

Tapani Pälli tapani.palli at intel.com
Thu Aug 13 21:40:20 PDT 2015


Yes, this fixes the issue;
Tested-by: Tapani Pälli <tapani.palli at intel.com>

On 08/14/2015 12:59 AM, Dylan Baker wrote:
> This patch changes the way mako handles errors converting input data to
> unicode, instead of raising an error when hitting a bad character (such
> as '\ufffd', which mesa returns sometimes), it replaces them with the
> box replacement character.
>
> cc: tapani.palli at intel.com
> cc: jason.ekstrand at gmail.com
> Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
> ---
>
> Could one or both of you guys test this patch to see if it fixes your
> problems?
>
>   framework/summary.py | 15 +++++++++------
>   1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/framework/summary.py b/framework/summary.py
> index 8d5ad10..80cb181 100644
> --- a/framework/summary.py
> +++ b/framework/summary.py
> @@ -462,12 +462,14 @@ class Summary:
>           testindex = Template(filename=path.join(self.TEMPLATE_DIR,
>                                                   "testrun_info.mako"),
>                                output_encoding="utf-8",
> +                             encoding_errors='replace',
>                                module_directory=self.TEMP_DIR)
>
>           # Create the mako object for the individual result files
>           testfile = Template(filename=path.join(self.TEMPLATE_DIR,
>                                                  "test_result.mako"),
>                               output_encoding="utf-8",
> +                            encoding_errors='replace',
>                               module_directory=self.TEMP_DIR)
>
>           result_css = path.join(destination, "result.css")
> @@ -496,7 +498,7 @@ class Summary:
>               self.__find_totals(each)
>
>               with open(path.join(destination, name, "index.html"), 'w') as out:
> -                out.write(testindex.render_unicode(
> +                out.write(testindex.render(
>                       name=each.name,
>                       totals=self.totals,
>                       time=time,
> @@ -522,7 +524,7 @@ class Summary:
>                           value['time'] = datetime.timedelta(0, value['time'])
>
>                       with open(html_path, 'w') as out:
> -                        out.write(testfile.render_unicode(
> +                        out.write(testfile.render(
>                               testname=key,
>                               value=value,
>                               css=path.relpath(result_css, temp_path),
> @@ -531,11 +533,13 @@ class Summary:
>           # Finally build the root html files: index, regressions, etc
>           index = Template(filename=path.join(self.TEMPLATE_DIR, "index.mako"),
>                            output_encoding="utf-8",
> +                         encoding_errors='replace',
>                            module_directory=self.TEMP_DIR)
>
>           empty_status = Template(filename=path.join(self.TEMPLATE_DIR,
>                                                      "empty_status.mako"),
>                                   output_encoding="utf-8",
> +                                encoding_errors='replace',
>                                   module_directory=self.TEMP_DIR)
>
>           pages = frozenset(['changes', 'problems', 'skipped', 'fixes',
> @@ -545,7 +549,7 @@ class Summary:
>           # alltests, where the other pages all use the same name. ie,
>           # changes.html, self.changes, and page=changes.
>           with open(path.join(destination, "index.html"), 'w') as out:
> -            out.write(index.render_unicode(
> +            out.write(index.render(
>                   results=HTMLIndex(self, self.tests['all']),
>                   page='all',
>                   pages=pages,
> @@ -557,7 +561,7 @@ class Summary:
>               with open(path.join(destination, page + '.html'), 'w') as out:
>                   # If there is information to display display it
>                   if self.tests[page]:
> -                    out.write(index.render_unicode(
> +                    out.write(index.render(
>                           results=HTMLIndex(self, self.tests[page]),
>                           pages=pages,
>                           page=page,
> @@ -565,8 +569,7 @@ class Summary:
>                           exclude=exclude))
>                   # otherwise provide an empty page
>                   else:
> -                    out.write(empty_status.render_unicode(page=page,
> -                                                          pages=pages))
> +                    out.write(empty_status.render(page=page, pages=pages))
>
>       def generate_text(self, mode):
>           """ Write summary information to the console """
>


More information about the Piglit mailing list