Mercurial > hg
comparison tests/hghave @ 5252:c0281c6b40b0
hghave: wrap command output matching
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Mon, 27 Aug 2007 22:17:51 +0200 |
parents | 4fa0f2dff643 |
children | d82ebcdf20e1 961876838de0 |
comparison
equal
deleted
inserted
replaced
5251:90919a6f5c8f | 5252:c0281c6b40b0 |
---|---|
3 if all features are there, non-zero otherwise. If a feature name is | 3 if all features are there, non-zero otherwise. If a feature name is |
4 prefixed with "no-", the absence of feature is tested. | 4 prefixed with "no-", the absence of feature is tested. |
5 """ | 5 """ |
6 import optparse | 6 import optparse |
7 import os | 7 import os |
8 import re | |
8 import sys | 9 import sys |
9 import tempfile | 10 import tempfile |
10 | 11 |
11 tempprefix = 'hg-hghave-' | 12 tempprefix = 'hg-hghave-' |
13 | |
14 def matchoutput(cmd, regexp): | |
15 """Return True if cmd executes successfully and its output | |
16 is matched by the supplied regular expression. | |
17 """ | |
18 r = re.compile(regexp) | |
19 fh = os.popen(cmd) | |
20 s = fh.read() | |
21 ret = fh.close() | |
22 return ret is None and r.search(s) | |
12 | 23 |
13 def has_symlink(): | 24 def has_symlink(): |
14 return hasattr(os, "symlink") | 25 return hasattr(os, "symlink") |
15 | 26 |
16 def has_fifo(): | 27 def has_fifo(): |
50 return True | 61 return True |
51 except ImportError: | 62 except ImportError: |
52 return False | 63 return False |
53 | 64 |
54 def has_git(): | 65 def has_git(): |
55 fh = os.popen('git --version 2>&1') | 66 return matchoutput('git --version 2>&1', r'^git version') |
56 s = fh.read() | |
57 ret = fh.close() | |
58 return ret is None and s.startswith('git version') | |
59 | 67 |
60 checks = { | 68 checks = { |
61 "eol-in-paths": (has_eol_in_paths, "end-of-lines in paths"), | 69 "eol-in-paths": (has_eol_in_paths, "end-of-lines in paths"), |
62 "execbit": (has_executablebit, "executable bit"), | 70 "execbit": (has_executablebit, "executable bit"), |
63 "git": (has_git, "git command line client"), | 71 "git": (has_git, "git command line client"), |