debuginstall: use codecs.lookup() to detect invalid encoding
encoding.fromlocal() never tries to decode an ascii string since
853574db5b12,
and there's no universal non-ascii string which can be decoded as any valid
character set.
--- a/mercurial/debugcommands.py Sun Sep 10 23:37:14 2017 +0900
+++ b/mercurial/debugcommands.py Thu Sep 07 22:27:23 2017 +0900
@@ -7,6 +7,7 @@
from __future__ import absolute_import
+import codecs
import collections
import difflib
import errno
@@ -997,8 +998,8 @@
fm.write('encoding', _("checking encoding (%s)...\n"), encoding.encoding)
err = None
try:
- encoding.fromlocal("test")
- except error.Abort as inst:
+ codecs.lookup(pycompat.sysstr(encoding.encoding))
+ except LookupError as inst:
err = inst
problems += 1
fm.condwrite(err, 'encodingerror', _(" %s\n"
--- a/tests/test-install.t Sun Sep 10 23:37:14 2017 +0900
+++ b/tests/test-install.t Thu Sep 07 22:27:23 2017 +0900
@@ -76,6 +76,11 @@
1 problems detected, please check your install!
[1]
+hg debuginstall with invalid encoding
+ $ HGENCODING=invalidenc hg debuginstall | grep encoding
+ checking encoding (invalidenc)...
+ unknown encoding: invalidenc
+
path variables are expanded (~ is the same as $TESTTMP)
$ mkdir tools
$ touch tools/testeditor.exe