# HG changeset patch # User Patrick Mezard # Date 1188245871 -7200 # Node ID 166b40c49e4a40e544ce017d2393cd5b5ce6b047 # Parent 5a4824f6665c86fab5feea7674af78e017594c92 hghave: wrap command output matching diff --git a/tests/hghave b/tests/hghave --- 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"),