Mercurial > public > mercurial-scm > hg-stable
diff tests/run-tests.py @ 10300:c437745f50ec
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
author | Nicolas Dumazet <nicdumz.commits@gmail.com> |
---|---|
date | Thu, 10 Dec 2009 17:21:31 +0900 |
parents | 08a0f04b56bd |
children | bc9a3bb267fa |
line wrap: on
line diff
--- a/tests/run-tests.py Sun Jan 31 18:02:16 2010 +0100 +++ 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