diff --git a/tests/hghave b/tests/hghave --- a/tests/hghave +++ b/tests/hghave @@ -190,7 +190,20 @@ def list_features(): desc = feature[1] print name + ':', desc +def test_features(): + failed = 0 + for name, feature in checks.iteritems(): + check, _ = feature + try: + check() + except Exception, e: + print "feature %s failed: %s" % (name, e) + failed += 1 + return failed + parser = optparse.OptionParser("%prog [options] [features]") +parser.add_option("--test-features", action="store_true", + help="test available features") parser.add_option("--list-features", action="store_true", help="list available features") parser.add_option("-q", "--quiet", action="store_true", @@ -202,6 +215,9 @@ if __name__ == '__main__': list_features() sys.exit(0) + if options.test_features: + sys.exit(test_features()) + quiet = options.quiet failures = 0 diff --git a/tests/test-hghave b/tests/test-hghave new file mode 100755 --- /dev/null +++ b/tests/test-hghave @@ -0,0 +1,4 @@ +#!/bin/sh +# Testing that hghave does not crash when checking features + +"$TESTDIR/hghave" --test-features 2>/dev/null diff --git a/tests/test-hghave.out b/tests/test-hghave.out new file mode 100644