tests/hghave.py
author Mads Kiilerich <mads@kiilerich.com>
Fri, 15 Jun 2012 00:02:27 +0200
branchstable
changeset 1100 59a99457aa65
parent 1099 55c85631631b
child 1101 89f984505cbb
permissions -rwxr-xr-x
tests/hghave: test that a fifo actually can be created on the filesystem Some tests were failing on FAT filesystems. [ original upstream message ]
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1056
0e6cee08a2f8 tests: make hghave handle exec bit on Linux with vfat
Matt Mackall <mpm@selenic.com>
parents: 1055
diff changeset
     1
import os, stat
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     2
import re
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     3
import sys
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     4
import tempfile
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     5
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     6
tempprefix = 'hg-hghave-'
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     7
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     8
def matchoutput(cmd, regexp, ignorestatus=False):
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     9
    """Return True if cmd executes successfully and its output
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    10
    is matched by the supplied regular expression.
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    11
    """
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    12
    r = re.compile(regexp)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    13
    fh = os.popen(cmd)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    14
    s = fh.read()
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    15
    try:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    16
        ret = fh.close()
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    17
    except IOError:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    18
        # Happen in Windows test environment
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    19
        ret = 1
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    20
    return (ignorestatus or ret is None) and r.search(s)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    21
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    22
def has_baz():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    23
    return matchoutput('baz --version 2>&1', r'baz Bazaar version')
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    24
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    25
def has_bzr():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    26
    try:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    27
        import bzrlib
1070
838e4146e763 cleanup: "x != None" -> "x is not None"
Brodie Rao <brodie@sf.io>
parents: 1069
diff changeset
    28
        return bzrlib.__doc__ is not None
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    29
    except ImportError:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    30
        return False
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    31
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    32
def has_bzr114():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    33
    try:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    34
        import bzrlib
1070
838e4146e763 cleanup: "x != None" -> "x is not None"
Brodie Rao <brodie@sf.io>
parents: 1069
diff changeset
    35
        return (bzrlib.__doc__ is not None
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    36
                and bzrlib.version_info[:2] >= (1, 14))
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    37
    except ImportError:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    38
        return False
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    39
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    40
def has_cvs():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    41
    re = r'Concurrent Versions System.*?server'
1032
5923d03569b3 tests: skip cvs tests with msys on windows
Mads Kiilerich <mads@kiilerich.com>
parents: 1031
diff changeset
    42
    return matchoutput('cvs --version 2>&1', re) and not has_msys()
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    43
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    44
def has_darcs():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    45
    return matchoutput('darcs --version', r'2\.[2-9]', True)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    46
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    47
def has_mtn():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    48
    return matchoutput('mtn --version', r'monotone', True) and not matchoutput(
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    49
        'mtn --version', r'monotone 0\.', True)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    50
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    51
def has_eol_in_paths():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    52
    try:
1099
55c85631631b tests/hghave: consistently use dir='.', prefix=tempprefix for tempfiles
Mads Kiilerich <mads@kiilerich.com>
parents: 1098
diff changeset
    53
        fd, path = tempfile.mkstemp(dir='.', prefix=tempprefix, suffix='\n\r')
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    54
        os.close(fd)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    55
        os.remove(path)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    56
        return True
1072
bbf056e756cc cleanup: replace naked excepts with more specific ones
Brodie Rao <brodie@sf.io>
parents: 1071
diff changeset
    57
    except (IOError, OSError):
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    58
        return False
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    59
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    60
def has_executablebit():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    61
    try:
1056
0e6cee08a2f8 tests: make hghave handle exec bit on Linux with vfat
Matt Mackall <mpm@selenic.com>
parents: 1055
diff changeset
    62
        EXECFLAGS = stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH
1099
55c85631631b tests/hghave: consistently use dir='.', prefix=tempprefix for tempfiles
Mads Kiilerich <mads@kiilerich.com>
parents: 1098
diff changeset
    63
        fh, fn = tempfile.mkstemp(dir='.', prefix=tempprefix)
1056
0e6cee08a2f8 tests: make hghave handle exec bit on Linux with vfat
Matt Mackall <mpm@selenic.com>
parents: 1055
diff changeset
    64
        try:
0e6cee08a2f8 tests: make hghave handle exec bit on Linux with vfat
Matt Mackall <mpm@selenic.com>
parents: 1055
diff changeset
    65
            os.close(fh)
0e6cee08a2f8 tests: make hghave handle exec bit on Linux with vfat
Matt Mackall <mpm@selenic.com>
parents: 1055
diff changeset
    66
            m = os.stat(fn).st_mode & 0777
0e6cee08a2f8 tests: make hghave handle exec bit on Linux with vfat
Matt Mackall <mpm@selenic.com>
parents: 1055
diff changeset
    67
            new_file_has_exec = m & EXECFLAGS
0e6cee08a2f8 tests: make hghave handle exec bit on Linux with vfat
Matt Mackall <mpm@selenic.com>
parents: 1055
diff changeset
    68
            os.chmod(fn, m ^ EXECFLAGS)
0e6cee08a2f8 tests: make hghave handle exec bit on Linux with vfat
Matt Mackall <mpm@selenic.com>
parents: 1055
diff changeset
    69
            exec_flags_cannot_flip = ((os.stat(fn).st_mode & 0777) == m)
0e6cee08a2f8 tests: make hghave handle exec bit on Linux with vfat
Matt Mackall <mpm@selenic.com>
parents: 1055
diff changeset
    70
        finally:
0e6cee08a2f8 tests: make hghave handle exec bit on Linux with vfat
Matt Mackall <mpm@selenic.com>
parents: 1055
diff changeset
    71
            os.unlink(fn)
0e6cee08a2f8 tests: make hghave handle exec bit on Linux with vfat
Matt Mackall <mpm@selenic.com>
parents: 1055
diff changeset
    72
    except (IOError, OSError):
0e6cee08a2f8 tests: make hghave handle exec bit on Linux with vfat
Matt Mackall <mpm@selenic.com>
parents: 1055
diff changeset
    73
        # we don't care, the user probably won't be able to commit anyway
0e6cee08a2f8 tests: make hghave handle exec bit on Linux with vfat
Matt Mackall <mpm@selenic.com>
parents: 1055
diff changeset
    74
        return False
0e6cee08a2f8 tests: make hghave handle exec bit on Linux with vfat
Matt Mackall <mpm@selenic.com>
parents: 1055
diff changeset
    75
    return not (new_file_has_exec or exec_flags_cannot_flip)
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    76
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    77
def has_icasefs():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    78
    # Stolen from mercurial.util
1099
55c85631631b tests/hghave: consistently use dir='.', prefix=tempprefix for tempfiles
Mads Kiilerich <mads@kiilerich.com>
parents: 1098
diff changeset
    79
    fd, path = tempfile.mkstemp(dir='.', prefix=tempprefix)
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    80
    os.close(fd)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    81
    try:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    82
        s1 = os.stat(path)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    83
        d, b = os.path.split(path)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    84
        p2 = os.path.join(d, b.upper())
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    85
        if path == p2:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    86
            p2 = os.path.join(d, b.lower())
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    87
        try:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    88
            s2 = os.stat(p2)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    89
            return s2 == s1
1072
bbf056e756cc cleanup: replace naked excepts with more specific ones
Brodie Rao <brodie@sf.io>
parents: 1071
diff changeset
    90
        except OSError:
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    91
            return False
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    92
    finally:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    93
        os.remove(path)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    94
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    95
def has_inotify():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    96
    try:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    97
        import hgext.inotify.linux.watcher
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    98
        return True
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    99
    except ImportError:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   100
        return False
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   101
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   102
def has_fifo():
1100
59a99457aa65 tests/hghave: test that a fifo actually can be created on the filesystem
Mads Kiilerich <mads@kiilerich.com>
parents: 1099
diff changeset
   103
    if getattr(os, "mkfifo", None) is None:
59a99457aa65 tests/hghave: test that a fifo actually can be created on the filesystem
Mads Kiilerich <mads@kiilerich.com>
parents: 1099
diff changeset
   104
        return False
59a99457aa65 tests/hghave: test that a fifo actually can be created on the filesystem
Mads Kiilerich <mads@kiilerich.com>
parents: 1099
diff changeset
   105
    name = tempfile.mktemp(dir='.', prefix=tempprefix)
59a99457aa65 tests/hghave: test that a fifo actually can be created on the filesystem
Mads Kiilerich <mads@kiilerich.com>
parents: 1099
diff changeset
   106
    try:
59a99457aa65 tests/hghave: test that a fifo actually can be created on the filesystem
Mads Kiilerich <mads@kiilerich.com>
parents: 1099
diff changeset
   107
        os.mkfifo(name)
59a99457aa65 tests/hghave: test that a fifo actually can be created on the filesystem
Mads Kiilerich <mads@kiilerich.com>
parents: 1099
diff changeset
   108
        os.unlink(name)
59a99457aa65 tests/hghave: test that a fifo actually can be created on the filesystem
Mads Kiilerich <mads@kiilerich.com>
parents: 1099
diff changeset
   109
        return True
59a99457aa65 tests/hghave: test that a fifo actually can be created on the filesystem
Mads Kiilerich <mads@kiilerich.com>
parents: 1099
diff changeset
   110
    except OSError:
59a99457aa65 tests/hghave: test that a fifo actually can be created on the filesystem
Mads Kiilerich <mads@kiilerich.com>
parents: 1099
diff changeset
   111
        return False
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   112
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   113
def has_cacheable_fs():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   114
    from mercurial import util
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   115
1099
55c85631631b tests/hghave: consistently use dir='.', prefix=tempprefix for tempfiles
Mads Kiilerich <mads@kiilerich.com>
parents: 1098
diff changeset
   116
    fd, path = tempfile.mkstemp(dir='.', prefix=tempprefix)
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   117
    os.close(fd)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   118
    try:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   119
        return util.cachestat(path).cacheable()
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   120
    finally:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   121
        os.remove(path)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   122
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   123
def has_lsprof():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   124
    try:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   125
        import _lsprof
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   126
        return True
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   127
    except ImportError:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   128
        return False
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   129
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   130
def has_gettext():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   131
    return matchoutput('msgfmt --version', 'GNU gettext-tools')
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   132
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   133
def has_git():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   134
    return matchoutput('git --version 2>&1', r'^git version')
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   135
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   136
def has_docutils():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   137
    try:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   138
        from docutils.core import publish_cmdline
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   139
        return True
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   140
    except ImportError:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   141
        return False
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   142
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   143
def getsvnversion():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   144
    m = matchoutput('svn --version 2>&1', r'^svn,\s+version\s+(\d+)\.(\d+)')
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   145
    if not m:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   146
        return (0, 0)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   147
    return (int(m.group(1)), int(m.group(2)))
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   148
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   149
def has_svn15():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   150
    return getsvnversion() >= (1, 5)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   151
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   152
def has_svn13():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   153
    return getsvnversion() >= (1, 3)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   154
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   155
def has_svn():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   156
    return matchoutput('svn --version 2>&1', r'^svn, version') and \
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   157
        matchoutput('svnadmin --version 2>&1', r'^svnadmin, version')
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   158
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   159
def has_svn_bindings():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   160
    try:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   161
        import svn.core
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   162
        version = svn.core.SVN_VER_MAJOR, svn.core.SVN_VER_MINOR
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   163
        if version < (1, 4):
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   164
            return False
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   165
        return True
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   166
    except ImportError:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   167
        return False
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   168
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   169
def has_p4():
1069
4e0cef7a70cf cleanup: eradicate long lines
Brodie Rao <brodie@sf.io>
parents: 1063
diff changeset
   170
    return (matchoutput('p4 -V', r'Rev\. P4/') and
4e0cef7a70cf cleanup: eradicate long lines
Brodie Rao <brodie@sf.io>
parents: 1063
diff changeset
   171
            matchoutput('p4d -V', r'Rev\. P4D/'))
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   172
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   173
def has_symlink():
1071
f0ce3dcd5c87 cleanup: replace hasattr() usage with getattr() in hghave
Brodie Rao <brodie@sf.io>
parents: 1070
diff changeset
   174
    if getattr(os, "symlink", None) is None:
1055
dabed2cabd5e tests: teach hghave to actually test for symlink support
Matt Mackall <mpm@selenic.com>
parents: 1032
diff changeset
   175
        return False
1099
55c85631631b tests/hghave: consistently use dir='.', prefix=tempprefix for tempfiles
Mads Kiilerich <mads@kiilerich.com>
parents: 1098
diff changeset
   176
    name = tempfile.mktemp(dir='.', prefix=tempprefix)
1055
dabed2cabd5e tests: teach hghave to actually test for symlink support
Matt Mackall <mpm@selenic.com>
parents: 1032
diff changeset
   177
    try:
dabed2cabd5e tests: teach hghave to actually test for symlink support
Matt Mackall <mpm@selenic.com>
parents: 1032
diff changeset
   178
        os.symlink(".", name)
dabed2cabd5e tests: teach hghave to actually test for symlink support
Matt Mackall <mpm@selenic.com>
parents: 1032
diff changeset
   179
        os.unlink(name)
dabed2cabd5e tests: teach hghave to actually test for symlink support
Matt Mackall <mpm@selenic.com>
parents: 1032
diff changeset
   180
        return True
dabed2cabd5e tests: teach hghave to actually test for symlink support
Matt Mackall <mpm@selenic.com>
parents: 1032
diff changeset
   181
    except (OSError, AttributeError):
dabed2cabd5e tests: teach hghave to actually test for symlink support
Matt Mackall <mpm@selenic.com>
parents: 1032
diff changeset
   182
        return False
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   183
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   184
def has_tla():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   185
    return matchoutput('tla --version 2>&1', r'The GNU Arch Revision')
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   186
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   187
def has_gpg():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   188
    return matchoutput('gpg --version 2>&1', r'GnuPG')
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   189
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   190
def has_unix_permissions():
1099
55c85631631b tests/hghave: consistently use dir='.', prefix=tempprefix for tempfiles
Mads Kiilerich <mads@kiilerich.com>
parents: 1098
diff changeset
   191
    d = tempfile.mkdtemp(dir='.', prefix=tempprefix)
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   192
    try:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   193
        fname = os.path.join(d, 'foo')
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   194
        for umask in (077, 007, 022):
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   195
            os.umask(umask)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   196
            f = open(fname, 'w')
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   197
            f.close()
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   198
            mode = os.stat(fname).st_mode
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   199
            os.unlink(fname)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   200
            if mode & 0777 != ~umask & 0666:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   201
                return False
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   202
        return True
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   203
    finally:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   204
        os.rmdir(d)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   205
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   206
def has_pyflakes():
1089
f26e9129f65b hghave: wrap command in 'sh -c "..."' for has_pyflakes()
Adrian Buehlmann <adrian@cadifra.com>
parents: 1072
diff changeset
   207
    return matchoutput("sh -c \"echo 'import re' 2>&1 | pyflakes\"",
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   208
                       r"<stdin>:1: 're' imported but unused",
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   209
                       True)
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   210
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   211
def has_pygments():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   212
    try:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   213
        import pygments
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   214
        return True
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   215
    except ImportError:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   216
        return False
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   217
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   218
def has_outer_repo():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   219
    return matchoutput('hg root 2>&1', r'')
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   220
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   221
def has_ssl():
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   222
    try:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   223
        import ssl
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   224
        import OpenSSL
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   225
        OpenSSL.SSL.Context
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   226
        return True
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   227
    except ImportError:
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   228
        return False
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   229
1012
018ef69bbe2f tests: use 'hghave no-windows' to avoid testing reserved file names on windows
Mads Kiilerich <mads@kiilerich.com>
parents: 1010
diff changeset
   230
def has_windows():
018ef69bbe2f tests: use 'hghave no-windows' to avoid testing reserved file names on windows
Mads Kiilerich <mads@kiilerich.com>
parents: 1010
diff changeset
   231
    return os.name == 'nt'
018ef69bbe2f tests: use 'hghave no-windows' to avoid testing reserved file names on windows
Mads Kiilerich <mads@kiilerich.com>
parents: 1010
diff changeset
   232
1013
e00f51032041 tests: use 'hghave system-sh' to guard tests that requires sh in system()
Mads Kiilerich <mads@kiilerich.com>
parents: 1012
diff changeset
   233
def has_system_sh():
e00f51032041 tests: use 'hghave system-sh' to guard tests that requires sh in system()
Mads Kiilerich <mads@kiilerich.com>
parents: 1012
diff changeset
   234
    return os.name != 'nt'
e00f51032041 tests: use 'hghave system-sh' to guard tests that requires sh in system()
Mads Kiilerich <mads@kiilerich.com>
parents: 1012
diff changeset
   235
1014
58b7f58ae08c tests: use 'hghave serve' to guard tests that requires serve daemon management
Mads Kiilerich <mads@kiilerich.com>
parents: 1013
diff changeset
   236
def has_serve():
58b7f58ae08c tests: use 'hghave serve' to guard tests that requires serve daemon management
Mads Kiilerich <mads@kiilerich.com>
parents: 1013
diff changeset
   237
    return os.name != 'nt' # gross approximation
58b7f58ae08c tests: use 'hghave serve' to guard tests that requires serve daemon management
Mads Kiilerich <mads@kiilerich.com>
parents: 1013
diff changeset
   238
1027
f8c2547c8f16 tests: skip color test on platforms without tic
Mads Kiilerich <mads@kiilerich.com>
parents: 1014
diff changeset
   239
def has_tic():
f8c2547c8f16 tests: skip color test on platforms without tic
Mads Kiilerich <mads@kiilerich.com>
parents: 1014
diff changeset
   240
    return matchoutput('test -x "`which tic`"', '')
f8c2547c8f16 tests: skip color test on platforms without tic
Mads Kiilerich <mads@kiilerich.com>
parents: 1014
diff changeset
   241
1031
b914fc162545 tests: introduce 'hghave msys' to skip tests that would fail because of msys
Mads Kiilerich <mads@kiilerich.com>
parents: 1027
diff changeset
   242
def has_msys():
b914fc162545 tests: introduce 'hghave msys' to skip tests that would fail because of msys
Mads Kiilerich <mads@kiilerich.com>
parents: 1027
diff changeset
   243
    return os.getenv('MSYSTEM')
b914fc162545 tests: introduce 'hghave msys' to skip tests that would fail because of msys
Mads Kiilerich <mads@kiilerich.com>
parents: 1027
diff changeset
   244
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   245
checks = {
1091
15dc93f78ecd tests/hghave: implement #if true / #if false
Adrian Buehlmann <adrian@cadifra.com>
parents: 1089
diff changeset
   246
    "true": (lambda: True, "yak shaving"),
15dc93f78ecd tests/hghave: implement #if true / #if false
Adrian Buehlmann <adrian@cadifra.com>
parents: 1089
diff changeset
   247
    "false": (lambda: False, "nail clipper"),
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   248
    "baz": (has_baz, "GNU Arch baz client"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   249
    "bzr": (has_bzr, "Canonical's Bazaar client"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   250
    "bzr114": (has_bzr114, "Canonical's Bazaar client >= 1.14"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   251
    "cacheable": (has_cacheable_fs, "cacheable filesystem"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   252
    "cvs": (has_cvs, "cvs client/server"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   253
    "darcs": (has_darcs, "darcs client"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   254
    "docutils": (has_docutils, "Docutils text processing library"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   255
    "eol-in-paths": (has_eol_in_paths, "end-of-lines in paths"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   256
    "execbit": (has_executablebit, "executable bit"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   257
    "fifo": (has_fifo, "named pipes"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   258
    "gettext": (has_gettext, "GNU Gettext (msgfmt)"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   259
    "git": (has_git, "git command line client"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   260
    "gpg": (has_gpg, "gpg client"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   261
    "icasefs": (has_icasefs, "case insensitive file system"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   262
    "inotify": (has_inotify, "inotify extension support"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   263
    "lsprof": (has_lsprof, "python lsprof module"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   264
    "mtn": (has_mtn, "monotone client (>= 1.0)"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   265
    "outer-repo": (has_outer_repo, "outer repo"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   266
    "p4": (has_p4, "Perforce server and client"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   267
    "pyflakes": (has_pyflakes, "Pyflakes python linter"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   268
    "pygments": (has_pygments, "Pygments source highlighting library"),
1014
58b7f58ae08c tests: use 'hghave serve' to guard tests that requires serve daemon management
Mads Kiilerich <mads@kiilerich.com>
parents: 1013
diff changeset
   269
    "serve": (has_serve, "platform and python can manage 'hg serve -d'"),
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   270
    "ssl": (has_ssl, "python >= 2.6 ssl module and python OpenSSL"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   271
    "svn": (has_svn, "subversion client and admin tools"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   272
    "svn13": (has_svn13, "subversion client and admin tools >= 1.3"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   273
    "svn15": (has_svn15, "subversion client and admin tools >= 1.5"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   274
    "svn-bindings": (has_svn_bindings, "subversion python bindings"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   275
    "symlink": (has_symlink, "symbolic links"),
1013
e00f51032041 tests: use 'hghave system-sh' to guard tests that requires sh in system()
Mads Kiilerich <mads@kiilerich.com>
parents: 1012
diff changeset
   276
    "system-sh": (has_system_sh, "system() uses sh"),
1027
f8c2547c8f16 tests: skip color test on platforms without tic
Mads Kiilerich <mads@kiilerich.com>
parents: 1014
diff changeset
   277
    "tic": (has_tic, "terminfo compiler"),
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   278
    "tla": (has_tla, "GNU Arch tla client"),
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   279
    "unix-permissions": (has_unix_permissions, "unix-style permissions"),
1012
018ef69bbe2f tests: use 'hghave no-windows' to avoid testing reserved file names on windows
Mads Kiilerich <mads@kiilerich.com>
parents: 1010
diff changeset
   280
    "windows": (has_windows, "Windows"),
1031
b914fc162545 tests: introduce 'hghave msys' to skip tests that would fail because of msys
Mads Kiilerich <mads@kiilerich.com>
parents: 1027
diff changeset
   281
    "msys": (has_msys, "Windows with MSYS"),
1007
4fad25af75dd Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
   282
}