tests/hghave
author Matt Mackall <mpm@selenic.com>
Thu, 11 Oct 2007 00:46:54 -0500
changeset 5451 0a43875677b1
parent 5410 2daecf3d2582
permissions -rwxr-xr-x
revlog: break up compression of large deltas Python's zlib apparently makes an internal copy of strings passed to compress(). To avoid this, compress strings 1M at a time, then join them at the end if the result would be smaller than the original. For initial commits of large but compressible files, this cuts peak memory usage nearly in half.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4881
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     1
#!/usr/bin/env python
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     2
"""Test the running system for features availability. Exit with zero
5125
80309fa23cdb hghave: feature absence can be checked by prefixing with 'no-'
Patrick Mezard <pmezard@gmail.com>
parents: 5115
diff changeset
     3
if all features are there, non-zero otherwise. If a feature name is
80309fa23cdb hghave: feature absence can be checked by prefixing with 'no-'
Patrick Mezard <pmezard@gmail.com>
parents: 5115
diff changeset
     4
prefixed with "no-", the absence of feature is tested.
4881
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     5
"""
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     6
import optparse
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     7
import os
5248
c0281c6b40b0 hghave: wrap command output matching
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
     8
import re
4881
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     9
import sys
5088
7e2385a31933 hghave: detect executable permission availability.
Patrick Mezard <pmezard@gmail.com>
parents: 5086
diff changeset
    10
import tempfile
4881
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    11
5135
bf60e4bd6672 hghave: prefix temporary files with "hg-hghave-"
Patrick Mezard <pmezard@gmail.com>
parents: 5125
diff changeset
    12
tempprefix = 'hg-hghave-'
bf60e4bd6672 hghave: prefix temporary files with "hg-hghave-"
Patrick Mezard <pmezard@gmail.com>
parents: 5125
diff changeset
    13
5302
961876838de0 hghave: detect cvs and cvsps availability
Patrick Mezard <pmezard@gmail.com>
parents: 5248
diff changeset
    14
def matchoutput(cmd, regexp, ignorestatus=False):
5248
c0281c6b40b0 hghave: wrap command output matching
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
    15
    """Return True if cmd executes successfully and its output
c0281c6b40b0 hghave: wrap command output matching
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
    16
    is matched by the supplied regular expression.
c0281c6b40b0 hghave: wrap command output matching
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
    17
    """
c0281c6b40b0 hghave: wrap command output matching
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
    18
    r = re.compile(regexp)
c0281c6b40b0 hghave: wrap command output matching
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
    19
    fh = os.popen(cmd)
c0281c6b40b0 hghave: wrap command output matching
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
    20
    s = fh.read()
c0281c6b40b0 hghave: wrap command output matching
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
    21
    ret = fh.close()
5302
961876838de0 hghave: detect cvs and cvsps availability
Patrick Mezard <pmezard@gmail.com>
parents: 5248
diff changeset
    22
    return (ignorestatus or ret is None) and r.search(s)
5248
c0281c6b40b0 hghave: wrap command output matching
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
    23
5302
961876838de0 hghave: detect cvs and cvsps availability
Patrick Mezard <pmezard@gmail.com>
parents: 5248
diff changeset
    24
def has_cvs():
961876838de0 hghave: detect cvs and cvsps availability
Patrick Mezard <pmezard@gmail.com>
parents: 5248
diff changeset
    25
    return matchoutput('cvs --version 2>&1', r'Concurrent Versions System')
961876838de0 hghave: detect cvs and cvsps availability
Patrick Mezard <pmezard@gmail.com>
parents: 5248
diff changeset
    26
961876838de0 hghave: detect cvs and cvsps availability
Patrick Mezard <pmezard@gmail.com>
parents: 5248
diff changeset
    27
def has_cvsps():
961876838de0 hghave: detect cvs and cvsps availability
Patrick Mezard <pmezard@gmail.com>
parents: 5248
diff changeset
    28
    return matchoutput('cvsps -h -q 2>&1', r'cvsps version', True)
961876838de0 hghave: detect cvs and cvsps availability
Patrick Mezard <pmezard@gmail.com>
parents: 5248
diff changeset
    29
5410
2daecf3d2582 hghave: detect darcs client
Patrick Mezard <pmezard@gmail.com>
parents: 5409
diff changeset
    30
def has_darcs():
2daecf3d2582 hghave: detect darcs client
Patrick Mezard <pmezard@gmail.com>
parents: 5409
diff changeset
    31
    return matchoutput('darcs', 'darcs version', True)
2daecf3d2582 hghave: detect darcs client
Patrick Mezard <pmezard@gmail.com>
parents: 5409
diff changeset
    32
5409
190c234c8fa0 hghave: reorder check functions and entries
Patrick Mezard <pmezard@gmail.com>
parents: 5308
diff changeset
    33
def has_eol_in_paths():
190c234c8fa0 hghave: reorder check functions and entries
Patrick Mezard <pmezard@gmail.com>
parents: 5308
diff changeset
    34
    try:
190c234c8fa0 hghave: reorder check functions and entries
Patrick Mezard <pmezard@gmail.com>
parents: 5308
diff changeset
    35
        fd, path = tempfile.mkstemp(prefix=tempprefix, suffix='\n\r')
190c234c8fa0 hghave: reorder check functions and entries
Patrick Mezard <pmezard@gmail.com>
parents: 5308
diff changeset
    36
        os.close(fd)
190c234c8fa0 hghave: reorder check functions and entries
Patrick Mezard <pmezard@gmail.com>
parents: 5308
diff changeset
    37
        os.remove(path)
190c234c8fa0 hghave: reorder check functions and entries
Patrick Mezard <pmezard@gmail.com>
parents: 5308
diff changeset
    38
        return True
190c234c8fa0 hghave: reorder check functions and entries
Patrick Mezard <pmezard@gmail.com>
parents: 5308
diff changeset
    39
    except:
190c234c8fa0 hghave: reorder check functions and entries
Patrick Mezard <pmezard@gmail.com>
parents: 5308
diff changeset
    40
        return False
190c234c8fa0 hghave: reorder check functions and entries
Patrick Mezard <pmezard@gmail.com>
parents: 5308
diff changeset
    41
5088
7e2385a31933 hghave: detect executable permission availability.
Patrick Mezard <pmezard@gmail.com>
parents: 5086
diff changeset
    42
def has_executablebit():
5135
bf60e4bd6672 hghave: prefix temporary files with "hg-hghave-"
Patrick Mezard <pmezard@gmail.com>
parents: 5125
diff changeset
    43
    fd, path = tempfile.mkstemp(prefix=tempprefix)
5088
7e2385a31933 hghave: detect executable permission availability.
Patrick Mezard <pmezard@gmail.com>
parents: 5086
diff changeset
    44
    os.close(fd)
7e2385a31933 hghave: detect executable permission availability.
Patrick Mezard <pmezard@gmail.com>
parents: 5086
diff changeset
    45
    try:
7e2385a31933 hghave: detect executable permission availability.
Patrick Mezard <pmezard@gmail.com>
parents: 5086
diff changeset
    46
        s = os.lstat(path).st_mode
7e2385a31933 hghave: detect executable permission availability.
Patrick Mezard <pmezard@gmail.com>
parents: 5086
diff changeset
    47
        os.chmod(path, s | 0100)
7e2385a31933 hghave: detect executable permission availability.
Patrick Mezard <pmezard@gmail.com>
parents: 5086
diff changeset
    48
        return (os.lstat(path).st_mode & 0100 != 0)
7e2385a31933 hghave: detect executable permission availability.
Patrick Mezard <pmezard@gmail.com>
parents: 5086
diff changeset
    49
    finally:
7e2385a31933 hghave: detect executable permission availability.
Patrick Mezard <pmezard@gmail.com>
parents: 5086
diff changeset
    50
        os.remove(path)
7e2385a31933 hghave: detect executable permission availability.
Patrick Mezard <pmezard@gmail.com>
parents: 5086
diff changeset
    51
5409
190c234c8fa0 hghave: reorder check functions and entries
Patrick Mezard <pmezard@gmail.com>
parents: 5308
diff changeset
    52
def has_fifo():
190c234c8fa0 hghave: reorder check functions and entries
Patrick Mezard <pmezard@gmail.com>
parents: 5308
diff changeset
    53
    return hasattr(os, "mkfifo")
5090
e86788af599a hghave: detect support for EOL in paths.
Patrick Mezard <pmezard@gmail.com>
parents: 5088
diff changeset
    54
5162
9b0efeb725f4 test-profile: fix grep, check hotshot availability
Patrick Mezard <pmezard@gmail.com>
parents: 5157
diff changeset
    55
def has_hotshot():
9b0efeb725f4 test-profile: fix grep, check hotshot availability
Patrick Mezard <pmezard@gmail.com>
parents: 5157
diff changeset
    56
    try:
5164
e5b21a549cc5 hghave: test hotshot dependencies (debian does not provide profile)
Patrick Mezard <pmezard@gmail.com>
parents: 5162
diff changeset
    57
        # hotshot.stats tests hotshot and many problematic dependencies
e5b21a549cc5 hghave: test hotshot dependencies (debian does not provide profile)
Patrick Mezard <pmezard@gmail.com>
parents: 5162
diff changeset
    58
        # like profile.
e5b21a549cc5 hghave: test hotshot dependencies (debian does not provide profile)
Patrick Mezard <pmezard@gmail.com>
parents: 5162
diff changeset
    59
        import hotshot.stats
5162
9b0efeb725f4 test-profile: fix grep, check hotshot availability
Patrick Mezard <pmezard@gmail.com>
parents: 5157
diff changeset
    60
        return True
9b0efeb725f4 test-profile: fix grep, check hotshot availability
Patrick Mezard <pmezard@gmail.com>
parents: 5157
diff changeset
    61
    except ImportError:
9b0efeb725f4 test-profile: fix grep, check hotshot availability
Patrick Mezard <pmezard@gmail.com>
parents: 5157
diff changeset
    62
        return False
9b0efeb725f4 test-profile: fix grep, check hotshot availability
Patrick Mezard <pmezard@gmail.com>
parents: 5157
diff changeset
    63
5157
105d4cf7ec24 Test --time, --profile and --lsprof
Patrick Mezard <pmezard@gmail.com>
parents: 5144
diff changeset
    64
def has_lsprof():
105d4cf7ec24 Test --time, --profile and --lsprof
Patrick Mezard <pmezard@gmail.com>
parents: 5144
diff changeset
    65
    try:
105d4cf7ec24 Test --time, --profile and --lsprof
Patrick Mezard <pmezard@gmail.com>
parents: 5144
diff changeset
    66
        import _lsprof
105d4cf7ec24 Test --time, --profile and --lsprof
Patrick Mezard <pmezard@gmail.com>
parents: 5144
diff changeset
    67
        return True
105d4cf7ec24 Test --time, --profile and --lsprof
Patrick Mezard <pmezard@gmail.com>
parents: 5144
diff changeset
    68
    except ImportError:
105d4cf7ec24 Test --time, --profile and --lsprof
Patrick Mezard <pmezard@gmail.com>
parents: 5144
diff changeset
    69
        return False
105d4cf7ec24 Test --time, --profile and --lsprof
Patrick Mezard <pmezard@gmail.com>
parents: 5144
diff changeset
    70
5230
4fa0f2dff643 hghave: detect git availability
Patrick Mezard <pmezard@gmail.com>
parents: 5164
diff changeset
    71
def has_git():
5248
c0281c6b40b0 hghave: wrap command output matching
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
    72
    return matchoutput('git --version 2>&1', r'^git version')
5230
4fa0f2dff643 hghave: detect git availability
Patrick Mezard <pmezard@gmail.com>
parents: 5164
diff changeset
    73
5249
d82ebcdf20e1 hghave: detect subversion client and admin tools availability
Patrick Mezard <pmezard@gmail.com>
parents: 5248
diff changeset
    74
def has_svn():
d82ebcdf20e1 hghave: detect subversion client and admin tools availability
Patrick Mezard <pmezard@gmail.com>
parents: 5248
diff changeset
    75
    return matchoutput('svn --version 2>&1', r'^svn, version') and \
d82ebcdf20e1 hghave: detect subversion client and admin tools availability
Patrick Mezard <pmezard@gmail.com>
parents: 5248
diff changeset
    76
        matchoutput('svnadmin --version 2>&1', r'^svnadmin, version')
d82ebcdf20e1 hghave: detect subversion client and admin tools availability
Patrick Mezard <pmezard@gmail.com>
parents: 5248
diff changeset
    77
5250
d61e98a82cee hghave: detect subversion bindings availability
Patrick Mezard <pmezard@gmail.com>
parents: 5249
diff changeset
    78
def has_svn_bindings():
d61e98a82cee hghave: detect subversion bindings availability
Patrick Mezard <pmezard@gmail.com>
parents: 5249
diff changeset
    79
    try:
d61e98a82cee hghave: detect subversion bindings availability
Patrick Mezard <pmezard@gmail.com>
parents: 5249
diff changeset
    80
        import svn.core
d61e98a82cee hghave: detect subversion bindings availability
Patrick Mezard <pmezard@gmail.com>
parents: 5249
diff changeset
    81
        return True
d61e98a82cee hghave: detect subversion bindings availability
Patrick Mezard <pmezard@gmail.com>
parents: 5249
diff changeset
    82
    except ImportError:
d61e98a82cee hghave: detect subversion bindings availability
Patrick Mezard <pmezard@gmail.com>
parents: 5249
diff changeset
    83
        return False
d61e98a82cee hghave: detect subversion bindings availability
Patrick Mezard <pmezard@gmail.com>
parents: 5249
diff changeset
    84
5409
190c234c8fa0 hghave: reorder check functions and entries
Patrick Mezard <pmezard@gmail.com>
parents: 5308
diff changeset
    85
def has_symlink():
190c234c8fa0 hghave: reorder check functions and entries
Patrick Mezard <pmezard@gmail.com>
parents: 5308
diff changeset
    86
    return hasattr(os, "symlink")
190c234c8fa0 hghave: reorder check functions and entries
Patrick Mezard <pmezard@gmail.com>
parents: 5308
diff changeset
    87
4881
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    88
checks = {
5302
961876838de0 hghave: detect cvs and cvsps availability
Patrick Mezard <pmezard@gmail.com>
parents: 5248
diff changeset
    89
    "cvs": (has_cvs, "cvs client"),
961876838de0 hghave: detect cvs and cvsps availability
Patrick Mezard <pmezard@gmail.com>
parents: 5248
diff changeset
    90
    "cvsps": (has_cvsps, "cvsps utility"),
5410
2daecf3d2582 hghave: detect darcs client
Patrick Mezard <pmezard@gmail.com>
parents: 5409
diff changeset
    91
    "darcs": (has_darcs, "darcs client"),
5157
105d4cf7ec24 Test --time, --profile and --lsprof
Patrick Mezard <pmezard@gmail.com>
parents: 5144
diff changeset
    92
    "eol-in-paths": (has_eol_in_paths, "end-of-lines in paths"),
105d4cf7ec24 Test --time, --profile and --lsprof
Patrick Mezard <pmezard@gmail.com>
parents: 5144
diff changeset
    93
    "execbit": (has_executablebit, "executable bit"),
5409
190c234c8fa0 hghave: reorder check functions and entries
Patrick Mezard <pmezard@gmail.com>
parents: 5308
diff changeset
    94
    "fifo": (has_fifo, "named pipes"),
5230
4fa0f2dff643 hghave: detect git availability
Patrick Mezard <pmezard@gmail.com>
parents: 5164
diff changeset
    95
    "git": (has_git, "git command line client"),
5162
9b0efeb725f4 test-profile: fix grep, check hotshot availability
Patrick Mezard <pmezard@gmail.com>
parents: 5157
diff changeset
    96
    "hotshot": (has_hotshot, "python hotshot module"),
5157
105d4cf7ec24 Test --time, --profile and --lsprof
Patrick Mezard <pmezard@gmail.com>
parents: 5144
diff changeset
    97
    "lsprof": (has_lsprof, "python lsprof module"),
5249
d82ebcdf20e1 hghave: detect subversion client and admin tools availability
Patrick Mezard <pmezard@gmail.com>
parents: 5248
diff changeset
    98
    "svn": (has_svn, "subversion client and admin tools"),
5250
d61e98a82cee hghave: detect subversion bindings availability
Patrick Mezard <pmezard@gmail.com>
parents: 5249
diff changeset
    99
    "svn-bindings": (has_svn_bindings, "subversion python bindings"),
5157
105d4cf7ec24 Test --time, --profile and --lsprof
Patrick Mezard <pmezard@gmail.com>
parents: 5144
diff changeset
   100
    "symlink": (has_symlink, "symbolic links"),
4881
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   101
}
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   102
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   103
def list_features():
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   104
    for name, feature in checks.iteritems():
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   105
        desc = feature[1]
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   106
        print name + ':', desc
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   107
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   108
parser = optparse.OptionParser("%prog [options] [features]")
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   109
parser.add_option("--list-features", action="store_true",
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   110
                  help="list available features")
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   111
parser.add_option("-q", "--quiet", action="store_true",
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   112
                  help="check features silently")
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   113
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   114
if __name__ == '__main__':
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   115
    options, args = parser.parse_args()
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   116
    if options.list_features:
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   117
        list_features()
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   118
        sys.exit(0)
5115
ea7b982b6c08 Remove trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5090
diff changeset
   119
4881
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   120
    quiet = options.quiet
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   121
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   122
    failures = 0
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   123
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   124
    def error(msg):
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   125
        global failures
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   126
        if not quiet:
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   127
            sys.stderr.write(msg + '\n')
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   128
        failures += 1
5115
ea7b982b6c08 Remove trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5090
diff changeset
   129
4881
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   130
    for feature in args:
5125
80309fa23cdb hghave: feature absence can be checked by prefixing with 'no-'
Patrick Mezard <pmezard@gmail.com>
parents: 5115
diff changeset
   131
        negate = feature.startswith('no-')
80309fa23cdb hghave: feature absence can be checked by prefixing with 'no-'
Patrick Mezard <pmezard@gmail.com>
parents: 5115
diff changeset
   132
        if negate:
80309fa23cdb hghave: feature absence can be checked by prefixing with 'no-'
Patrick Mezard <pmezard@gmail.com>
parents: 5115
diff changeset
   133
            feature = feature[3:]
5143
fc6106267198 Hide absolute path from test-no-symlinks output.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5135
diff changeset
   134
4881
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   135
        if feature not in checks:
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   136
            error('hghave: unknown feature: ' + feature)
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   137
            continue
5115
ea7b982b6c08 Remove trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5090
diff changeset
   138
ea7b982b6c08 Remove trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5090
diff changeset
   139
        check, desc = checks[feature]
5125
80309fa23cdb hghave: feature absence can be checked by prefixing with 'no-'
Patrick Mezard <pmezard@gmail.com>
parents: 5115
diff changeset
   140
        if not negate and not check():
4881
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   141
            error('hghave: missing feature: ' + desc)
5125
80309fa23cdb hghave: feature absence can be checked by prefixing with 'no-'
Patrick Mezard <pmezard@gmail.com>
parents: 5115
diff changeset
   142
        elif negate and check():
5144
6e040f6c2c9c Print less scary message if the system supports symlinks:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5143
diff changeset
   143
            error('hghave: system supports %s' % desc)
4881
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   144
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   145
    if failures != 0:
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   146
        sys.exit(1)
c51c9bc4579d Add hghave utility and run-tests.py support.
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
   147
5115
ea7b982b6c08 Remove trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5090
diff changeset
   148