D5288: tests: make test-alias.t pass with re2

valentin.gatienbaron (Valentin Gatien-Baron) phabricator at mercurial-scm.org
Mon Nov 19 18:40:57 UTC 2018


valentin.gatienbaron created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Locally, these "non-ASCII character in alias" errors don't show up,
  though I get them when the alias is defined at the command line rather
  than in an hgrc.
  The brokenness comes from the fact that hgrcs are parsed with regexes,
  and re/re2 differ in this way:
  
  $ python -c 'import re; print(re.compile("(.*)").match("aaa\xc0bbbb").groups())'
  ('aaa\xc0bbbb',)
  $ python -c 'import re2; print(re2.compile("(.*)").match("aaa\xc0bbbb").groups())'
  ('aaa',)
  
  Apparently re2 stops when it encounters invalid utf8 (which I suppose makes sense
  given that '.' matches what appears to be a codepoint rather than a byte). This is
  presumably a bug in hg, but not very important, so just change the test to stick
  to valid utf8.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5288

AFFECTED FILES
  tests/test-alias.t

CHANGE DETAILS

diff --git a/tests/test-alias.t b/tests/test-alias.t
--- a/tests/test-alias.t
+++ b/tests/test-alias.t
@@ -623,9 +623,9 @@
   >>> with open('.hg/hgrc', 'ab') as f:
   ...     f.write(b'[alias]\n'
   ...             b'invaliddoc = log\n'
-  ...             b'invaliddoc:doc = \xc0\n'
+  ...             b'invaliddoc:doc = \xc3\xa9\n'
   ...             b'invalidhelp = log\n'
-  ...             b'invalidhelp:help = \xc0\n') and None
+  ...             b'invalidhelp:help = \xc3\xa9\n') and None
   $ hg help invaliddoc
   non-ASCII character in alias definition 'invaliddoc:doc'
   $ hg help invalidhelp



To: valentin.gatienbaron, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list