##// END OF EJS Templates
sslutil: synchronize hostname matching logic with CPython...
sslutil: synchronize hostname matching logic with CPython sslutil contains its own hostname matching logic. CPython has code for the same intent. However, it is only available to Python 2.7.9+ (or distributions that have backported 2.7.9's ssl module improvements). This patch effectively imports CPython's hostname matching code from its ssl.py into sslutil.py. The hostname matching code itself is pretty similar. However, the DNS name matching code is much more robust and spec conformant. As the test changes show, this changes some behavior around wildcard handling and IDNA matching. The new behavior allows wildcards in the middle of words (e.g. 'f*.com' matches 'foo.com') This is spec compliant according to RFC 6125 Section 6.5.3 item 3. There is one test where the matcher is more strict. Before, '*.a.com' matched '.a.com'. Now it doesn't match. Strictly speaking this is a security vulnerability.

File last commit:

r29266:b3a677c8 default
r29452:26a5d605 3.8.4 stable
Show More
test-install.t
139 lines | 4.3 KiB | text/troff | Tads3Lexer
Pradeepkumar Gayam
tests: unify test-install
r11917 hg debuginstall
$ hg debuginstall
Martin Geisler
debuginstall: lowercase status messages
r16934 checking encoding (ascii)...
Matt Mackall
debuginstall: change showing to checking for consistency and future checking
r20741 checking Python executable (*) (glob)
checking Python version (2.*) (glob)
Adrian Buehlmann
debuginstall: show directory for Python lib...
r17392 checking Python lib (*lib*)... (glob)
Martin Geisler
debuginstall: lowercase status messages
r16934 checking installed modules (*mercurial)... (glob)
checking templates (*mercurial?templates)... (glob)
timeless
debuginstall: convert to formatter...
r28440 checking default template (*mercurial?templates?map-cmdline.default) (glob)
Sean Farley
tests: python executable should always be globbed...
r28626 checking commit editor... (* -c "import sys; sys.exit(0)") (glob)
timeless
debuginstall: convert to formatter...
r28440 checking username (test)
Martin Geisler
debuginstall: lowercase status messages
r16934 no problems detected
Pradeepkumar Gayam
tests: unify test-install
r11917
timeless
debuginstall: convert to formatter...
r28440 hg debuginstall JSON
Matt Harbison
test-install: fix output on Windows...
r28885 $ hg debuginstall -Tjson | sed 's|\\\\|\\|g'
timeless
debuginstall: convert to formatter...
r28440 [
{
"defaulttemplate": "*mercurial?templates?map-cmdline.default", (glob)
"defaulttemplateerror": null,
"defaulttemplatenotfound": "default",
Sean Farley
tests: python executable should always be globbed...
r28626 "editor": "* -c \"import sys; sys.exit(0)\"", (glob)
timeless
debuginstall: convert to formatter...
r28440 "editornotfound": false,
"encoding": "ascii",
"encodingerror": null,
"extensionserror": null,
"hgmodules": "*mercurial", (glob)
"problems": 0,
Danek Duvall
tests: python executable path should always be globbed...
r28544 "pythonexe": "*", (glob)
Sean Farley
tests: python executable should always be globbed...
r28626 "pythonlib": "*", (glob)
timeless
debuginstall: convert to formatter...
r28440 "pythonver": "*.*.*", (glob)
"templatedirs": "*mercurial?templates", (glob)
"username": "test",
"usernameerror": null,
"vinotfound": false
}
]
Pradeepkumar Gayam
tests: unify test-install
r11917 hg debuginstall with no username
$ HGUSER= hg debuginstall
Martin Geisler
debuginstall: lowercase status messages
r16934 checking encoding (ascii)...
Matt Mackall
debuginstall: change showing to checking for consistency and future checking
r20741 checking Python executable (*) (glob)
checking Python version (2.*) (glob)
Adrian Buehlmann
debuginstall: show directory for Python lib...
r17392 checking Python lib (*lib*)... (glob)
Martin Geisler
debuginstall: lowercase status messages
r16934 checking installed modules (*mercurial)... (glob)
checking templates (*mercurial?templates)... (glob)
timeless
debuginstall: convert to formatter...
r28440 checking default template (*mercurial?templates?map-cmdline.default) (glob)
Sean Farley
tests: python executable should always be globbed...
r28626 checking commit editor... (* -c "import sys; sys.exit(0)") (glob)
Martin Geisler
debuginstall: lowercase status messages
r16934 checking username...
Matt Mackall
ui: suggest config --edit when no username is set
r20574 no username supplied
Martin Geisler
Merge with stable
r12084 (specify a username in your configuration file)
Pradeepkumar Gayam
tests: unify test-install
r11917 1 problems detected, please check your install!
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Matt Harbison
debuginstall: expand the editor path before searching for it (issue4380)...
r24891
path variables are expanded (~ is the same as $TESTTMP)
$ mkdir tools
$ touch tools/testeditor.exe
#if execbit
$ chmod 755 tools/testeditor.exe
#endif
$ hg debuginstall --config ui.editor=~/tools/testeditor.exe
checking encoding (ascii)...
checking Python executable (*) (glob)
checking Python version (*) (glob)
checking Python lib (*lib*)... (glob)
checking installed modules (*mercurial)... (glob)
checking templates (*mercurial?templates)... (glob)
timeless
debuginstall: convert to formatter...
r28440 checking default template (*mercurial?templates?map-cmdline.default) (glob)
Sean Farley
tests: python executable should always be globbed...
r28626 checking commit editor... (* -c "import sys; sys.exit(0)") (glob)
timeless
debuginstall: convert to formatter...
r28440 checking username (test)
Matt Harbison
debuginstall: expand the editor path before searching for it (issue4380)...
r24891 no problems detected
Matt Harbison
tests: add coverage to ensure Wix tracks 'help' and 'templates' files...
r27383
Matt Harbison
test-install: perform the wix checking on wdir() instead of "."...
r27442 #if test-repo
Matt Harbison
tests: add coverage to ensure Wix tracks 'help' and 'templates' files...
r27383 $ cat >> wixxml.py << EOF
> import os, subprocess, sys
> import xml.etree.ElementTree as ET
>
> # MSYS mangles the path if it expands $TESTDIR
> testdir = os.environ['TESTDIR']
> ns = {'wix' : 'http://schemas.microsoft.com/wix/2006/wi'}
>
> def directory(node, relpath):
> '''generator of files in the xml node, rooted at relpath'''
Yuya Nishihara
test-install: embed wix namespace for Python 2.6 compatibility...
r27519 > dirs = node.findall('./{%(wix)s}Directory' % ns)
Matt Harbison
tests: add coverage to ensure Wix tracks 'help' and 'templates' files...
r27383 >
> for d in dirs:
> for subfile in directory(d, relpath + d.attrib['Name'] + '/'):
> yield subfile
>
Yuya Nishihara
test-install: embed wix namespace for Python 2.6 compatibility...
r27519 > files = node.findall('./{%(wix)s}Component/{%(wix)s}File' % ns)
Matt Harbison
tests: add coverage to ensure Wix tracks 'help' and 'templates' files...
r27383 >
> for f in files:
> yield relpath + f.attrib['Name']
>
> def hgdirectory(relpath):
> '''generator of tracked files, rooted at relpath'''
> hgdir = "%s/../mercurial" % (testdir)
Matt Harbison
test-install: perform the wix checking on wdir() instead of "."...
r27442 > args = ['hg', '--cwd', hgdir, 'files', relpath]
Matt Harbison
tests: add coverage to ensure Wix tracks 'help' and 'templates' files...
r27383 > proc = subprocess.Popen(args, stdout=subprocess.PIPE,
> stderr=subprocess.PIPE)
> output = proc.communicate()[0]
>
> slash = '/'
> for line in output.splitlines():
> if os.name == 'nt':
> yield line.replace(os.sep, slash)
> else:
> yield line
>
> tracked = [f for f in hgdirectory(sys.argv[1])]
>
> xml = ET.parse("%s/../contrib/wix/%s.wxs" % (testdir, sys.argv[1]))
> root = xml.getroot()
Yuya Nishihara
test-install: embed wix namespace for Python 2.6 compatibility...
r27519 > dir = root.find('.//{%(wix)s}DirectoryRef' % ns)
Matt Harbison
tests: add coverage to ensure Wix tracks 'help' and 'templates' files...
r27383 >
> installed = [f for f in directory(dir, '')]
>
> print('Not installed:')
> for f in sorted(set(tracked) - set(installed)):
> print(' %s' % f)
>
> print('Not tracked:')
> for f in sorted(set(installed) - set(tracked)):
> print(' %s' % f)
> EOF
$ python wixxml.py help
Not installed:
help/common.txt
Sean Farley
hg-ssh: copy doc string to man page...
r29090 help/hg-ssh.8.txt
Matt Harbison
tests: add coverage to ensure Wix tracks 'help' and 'templates' files...
r27383 help/hg.1.txt
help/hgignore.5.txt
help/hgrc.5.txt
Not tracked:
$ python wixxml.py templates
Not installed:
Not tracked:
Matt Harbison
test-install: perform the wix checking on wdir() instead of "."...
r27442
#endif