Skip to content

wpt manifest can create a MANIFEST.json with paths that don't decode on all platforms #57721

@jonathan-j-lee

Description

@jonathan-j-lee

For example: https://github.com/web-platform-tests/wpt/blob/ea5bf65ccfc183503ece50189c1a4486b1198739/svg/pservers/reftests/css-color-visited-currentcolor-svg-fill.html%E2%80%8E

Note the \u200e at the end. The manifest entry is:

      "css-color-visited-currentcolor-svg-fill.html\u200e": [
       "27e59452350a7d0a10ad26cbfea69cc16d203fcd",
       []
      ],

... but this entry can't be decoded on Windows:

INFO:manifest:Updating manifest
Traceback (most recent call last):
  File "D:\a\1\s\wpt", line 10, in <module>
    wpt.main()
  File "D:\a\1\s\tools\wpt\wpt.py", line 233, in main
    rv = script(*args, **kwargs)
  File "D:\a\1\s\tools\manifest\update.py", line 104, in run
    update_from_cli(**kwargs)
  File "D:\a\1\s\tools\manifest\update.py", line 53, in update_from_cli
    manifest.load_and_update(tests_root,
  File "D:\a\1\s\tools\manifest\manifest.py", line 416, in load_and_update
    tree.dump_caches()
  File "D:\a\1\s\tools\manifest\vcs.py", line 144, in dump_caches
    cache.dump()
  File "D:\a\1\s\tools\manifest\vcs.py", line 227, in dump
    super().dump()
  File "D:\a\1\s\tools\manifest\vcs.py", line 164, in dump
    jsonlib.dump_local(self.data, f)
  File "D:\a\1\s\tools\manifest\jsonlib.py", line 66, in dump_local
    return json.dump(obj, fp, **_json_dump_local_kwargs)
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\json\__init__.py", line 180, in dump
    fp.write(chunk)
  File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u200e' in position 70: character maps to <undefined>

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions