# HG changeset patch # User Patrick Mezard # Date 1188245871 -7200 # Node ID c0281c6b40b0c35ebb5c35d69a7a376dbde3ab4c # Parent 90919a6f5c8f064b63a6e368bd9a954966331d21 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"),