# HG changeset patch # User Nicolas Dumazet # Date 1260433291 -32400 # Node ID d0a410e497768a4859f0bd641a6dc807ccf598f9 # Parent f10a5301d0827ff58b999159c2c46fa6145a85ed run-tests: split tests/blacklist in tests/blacklists/* Following discussions with Gilles Morris [1], it seems that it is preferable to use several blacklist files in a blacklists/ directory. It is easier to add an unversioned file for experiments than modifying a tracked file. Also fall back to a simpler syntax, giving up ConfigParser, now that section names are not needed anymore. And allow --blacklist parameter to be a complete path, instead of only one of the filenames contained in tests/blacklists/ [1] http://www.selenic.com/pipermail/mercurial-devel/2009-December/017317.html [ original upstream message ] diff -r f10a5301d082 -r d0a410e49776 tests/run-tests.py --- a/tests/run-tests.py Mon Jan 25 00:05:27 2010 -0600 +++ b/tests/run-tests.py Thu Dec 10 17:21:31 2009 +0900 @@ -41,7 +41,6 @@ # completes fairly quickly, includes both shell and Python scripts, and # includes some scripts that run daemon processes.) -from ConfigParser import ConfigParser import difflib import errno import optparse @@ -134,8 +133,7 @@ parser.add_option("--inotify", action="store_true", help="enable inotify extension when running tests") parser.add_option("--blacklist", action="append", - help="skip tests listed in the specified section of " - "the blacklist file") + help="skip tests listed in the specified blacklist file") for option, default in defaults.items(): defaults[option] = int(os.environ.get(*default)) @@ -202,12 +200,22 @@ if sys.version_info[:2] < (2, 6) or sys.version_info[:2] >= (3, 0): parser.error('--py3k-warnings can only be used on Python 2.6+') if options.blacklist: - configparser = ConfigParser() - configparser.read("blacklist") blacklist = dict() - for section in options.blacklist: - for (item, value) in configparser.items(section): - blacklist["test-" + item] = section + for filename in options.blacklist: + try: + path = os.path.expanduser(os.path.expandvars(filename)) + f = open(path, "r") + except IOError, err: + if err.errno != errno.ENOENT: + raise + print "warning: no such blacklist file: %s" % filename + continue + + for line in f.readlines(): + line = line.strip() + if line and not line.startswith('#'): + blacklist[line] = filename + options.blacklist = blacklist return (options, args) @@ -744,9 +752,9 @@ for test in tests: if options.blacklist: - section = options.blacklist.get(test) - if section is not None: - skips.append((test, "blacklisted (%s section)" % section)) + filename = options.blacklist.get(test) + if filename is not None: + skips.append((test, "blacklisted (%s)" % filename)) skipped += 1 continue