mirror of
https://chromium.googlesource.com/chromium/tools/depot_tools.git
synced 2026-01-11 18:51:29 +00:00
Fix UTF-8 output in gclient_utils.CheckCallAndFilter
Hooks for Electron output UTF-8 characters.
Example error for when "✔" is output:
File "/home/markus/depot_tools/metrics.py", line 266, in print_notice_and_exit
yield
File "/home/markus/depot_tools/gclient.py", line 3112, in <module>
sys.exit(main(sys.argv[1:]))
File "/home/markus/depot_tools/gclient.py", line 3098, in main
return dispatcher.execute(OptionParser(), argv)
File "/home/markus/depot_tools/subcommand.py", line 252, in execute
return command(parser, args[1:])
File "/home/markus/depot_tools/gclient.py", line 2677, in CMDsync
ret = client.RunOnDeps('update', args)
File "/home/markus/depot_tools/gclient.py", line 1746, in RunOnDeps
self.RunHooksRecursively(self._options, pm)
File "/home/markus/depot_tools/gclient.py", line 1052, in RunHooksRecursively
hook.run()
File "/home/markus/depot_tools/gclient.py", line 245, in run
cmd, cwd=self.effective_cwd, always=self._verbose)
File "/home/markus/depot_tools/gclient_utils.py", line 344, in CheckCallAndFilterAndHeader
return CheckCallAndFilter(args, **kwargs)
File "/home/markus/depot_tools/gclient_utils.py", line 576, in CheckCallAndFilter
stdout.write(in_byte.decode())
File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe2 in position 0: unexpected end of data
This issue was introduced in CL:1524583.
Bug: 942522
Change-Id: I3c4355b925b34398c800d142f942531a829e0297
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1541334
Auto-Submit: Raul Tambre <raul@tambre.ee>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Raul Tambre <raul@tambre.ee>
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env python
|
||||
# coding=utf-8
|
||||
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
@@ -60,16 +61,18 @@ class CheckCallAndFilterTestCase(GclientUtilBase):
|
||||
capture_list.append(match.group(1))
|
||||
gclient_utils.CheckCallAndFilterAndHeader(
|
||||
args, cwd=cwd, always=True, filter_fn=FilterLines)
|
||||
self.assertEquals(line_list, ['ahah', 'accb', 'allo', 'addb'])
|
||||
self.assertEquals(line_list, ['ahah', 'accb', 'allo', 'addb', '✔'])
|
||||
self.assertEquals(capture_list, ['cc', 'dd'])
|
||||
|
||||
def testCheckCallAndFilter(self):
|
||||
args = ['boo', 'foo', 'bar']
|
||||
test_string = 'ahah\naccb\nallo\naddb\n'
|
||||
test_string = 'ahah\naccb\nallo\naddb\n✔\n'
|
||||
self._inner(args, test_string)
|
||||
self.checkstdout('________ running \'boo foo bar\' in \'bleh\'\n'
|
||||
'ahah\naccb\nallo\naddb\n'
|
||||
'________ running \'boo foo bar\' in \'bleh\'\nahah\naccb\nallo\naddb'
|
||||
self.checkstdout(
|
||||
'________ running \'boo foo bar\' in \'bleh\'\n'
|
||||
'ahah\naccb\nallo\naddb\n✔\n'
|
||||
'________ running \'boo foo bar\' in \'bleh\'\n'
|
||||
'ahah\naccb\nallo\naddb\n✔'
|
||||
'\n')
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user