changeset 5301:166b40c49e4a

hghave: wrap command output matching
author Patrick Mezard <pmezard@gmail.com>
date Mon, 27 Aug 2007 22:17:51 +0200
parents 5a4824f6665c
children 961876838de0
files tests/hghave
diffstat 1 files changed, 12 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/tests/hghave
+++ b/tests/hghave
@@ -5,11 +5,22 @@ prefixed with "no-", the absence of feat
 """
 import optparse
 import os
+import re
 import sys
 import tempfile
 
 tempprefix = 'hg-hghave-'
 
+def matchoutput(cmd, regexp):
+    """Return True if cmd executes successfully and its output
+    is matched by the supplied regular expression.
+    """
+    r = re.compile(regexp)
+    fh = os.popen(cmd)
+    s = fh.read()
+    ret = fh.close()
+    return ret is None and r.search(s)
+
 def has_symlink():
     return hasattr(os, "symlink")
 
@@ -52,10 +63,7 @@ def has_lsprof():
         return False
 
 def has_git():
-    fh = os.popen('git --version 2>&1')
-    s = fh.read()
-    ret = fh.close()
-    return ret is None and s.startswith('git version')
+    return matchoutput('git --version 2>&1', r'^git version')
 
 checks = {
     "eol-in-paths": (has_eol_in_paths, "end-of-lines in paths"),