tests/hghave
changeset 8059 41a2c5cbcb6a
parent 7823 11efa41037e2
child 8060 84d0fe34427b
equal deleted inserted replaced
8058:a0555ae394b3 8059:41a2c5cbcb6a
   188 def list_features():
   188 def list_features():
   189     for name, feature in checks.iteritems():
   189     for name, feature in checks.iteritems():
   190         desc = feature[1]
   190         desc = feature[1]
   191         print name + ':', desc
   191         print name + ':', desc
   192 
   192 
       
   193 def test_features():
       
   194     failed = 0
       
   195     for name, feature in checks.iteritems():
       
   196         check, _ = feature
       
   197         try:
       
   198             check()
       
   199         except Exception, e:
       
   200             print "feature %s failed:  %s" % (name, e)
       
   201             failed += 1
       
   202     return failed
       
   203 
   193 parser = optparse.OptionParser("%prog [options] [features]")
   204 parser = optparse.OptionParser("%prog [options] [features]")
       
   205 parser.add_option("--test-features", action="store_true",
       
   206                   help="test available features")
   194 parser.add_option("--list-features", action="store_true",
   207 parser.add_option("--list-features", action="store_true",
   195                   help="list available features")
   208                   help="list available features")
   196 parser.add_option("-q", "--quiet", action="store_true",
   209 parser.add_option("-q", "--quiet", action="store_true",
   197                   help="check features silently")
   210                   help="check features silently")
   198 
   211 
   200     options, args = parser.parse_args()
   213     options, args = parser.parse_args()
   201     if options.list_features:
   214     if options.list_features:
   202         list_features()
   215         list_features()
   203         sys.exit(0)
   216         sys.exit(0)
   204 
   217 
       
   218     if options.test_features:
       
   219         sys.exit(test_features())
       
   220 
   205     quiet = options.quiet
   221     quiet = options.quiet
   206 
   222 
   207     failures = 0
   223     failures = 0
   208 
   224 
   209     def error(msg):
   225     def error(msg):