tests/run-tests.py
changeset 959 fee93dd51b18
parent 956 e39ab51937a2
child 960 d1f0b4802c19
equal deleted inserted replaced
954:12a2b9b99beb 959:fee93dd51b18
   731             skip("doesn't exist")
   731             skip("doesn't exist")
   732             return None
   732             return None
   733     else:
   733     else:
   734         return None # not a supported test, don't record
   734         return None # not a supported test, don't record
   735 
   735 
   736     if options.blacklist:
   736     if options.blacklist and filename in options.blacklist:
   737         filename = options.blacklist.get(test)
   737         skip("blacklisted")
   738         if filename is not None:
   738         return None
   739             skip("blacklisted")
       
   740             return None
       
   741 
   739 
   742     if options.retest and not os.path.exists(test + ".err"):
   740     if options.retest and not os.path.exists(test + ".err"):
   743         ignore("not retesting")
   741         ignore("not retesting")
   744         return None
   742         return None
   745 
   743 
   919         installhg(options)
   917         installhg(options)
   920         _checkhglib("Testing")
   918         _checkhglib("Testing")
   921 
   919 
   922     optcopy = dict(options.__dict__)
   920     optcopy = dict(options.__dict__)
   923     optcopy['jobs'] = 1
   921     optcopy['jobs'] = 1
       
   922 
       
   923     blacklist = optcopy['blacklist'] or []
   924     del optcopy['blacklist']
   924     del optcopy['blacklist']
       
   925     blacklisted = []
       
   926 
   925     if optcopy['with_hg'] is None:
   927     if optcopy['with_hg'] is None:
   926         optcopy['with_hg'] = os.path.join(BINDIR, "hg")
   928         optcopy['with_hg'] = os.path.join(BINDIR, "hg")
   927     optcopy.pop('anycoverage', None)
   929     optcopy.pop('anycoverage', None)
   928 
   930 
   929     opts = []
   931     opts = []
   941     jobs = [[] for j in xrange(options.jobs)]
   943     jobs = [[] for j in xrange(options.jobs)]
   942     while tests:
   944     while tests:
   943         for job in jobs:
   945         for job in jobs:
   944             if not tests:
   946             if not tests:
   945                 break
   947                 break
   946             job.append(tests.pop())
   948             test = tests.pop()
       
   949             if test in blacklist:
       
   950                 blacklisted.append(test)
       
   951             else:
       
   952                 job.append(test)
   947     fps = {}
   953     fps = {}
   948 
   954 
   949     for j, job in enumerate(jobs):
   955     for j, job in enumerate(jobs):
   950         if not job:
   956         if not job:
   951             continue
   957             continue
   979         skipped += skip
   985         skipped += skip
   980         failed += fail
   986         failed += fail
   981         vlog('pid %d exited, status %d' % (pid, status))
   987         vlog('pid %d exited, status %d' % (pid, status))
   982         failures |= status
   988         failures |= status
   983     print
   989     print
       
   990     skipped += len(blacklisted)
   984     if not options.noskips:
   991     if not options.noskips:
   985         for s in skips:
   992         for s in skips:
   986             print "Skipped %s: %s" % (s[0], s[1])
   993             print "Skipped %s: %s" % (s[0], s[1])
       
   994         for s in blacklisted:
       
   995             print "Skipped %s: blacklisted" % s
   987     for s in fails:
   996     for s in fails:
   988         print "Failed %s: %s" % (s[0], s[1])
   997         print "Failed %s: %s" % (s[0], s[1])
   989 
   998 
   990     _checkhglib("Tested")
   999     _checkhglib("Tested")
   991     print "# Ran %d tests, %d skipped, %d failed." % (
  1000     print "# Ran %d tests, %d skipped, %d failed." % (