##// END OF EJS Templates
run-tests: add a "--blacklist target" option to skip predefined test lists...
Nicolas Dumazet -
r9959:b37b060d default
parent child Browse files
Show More
@@ -0,0 +1,14 b''
1 # ConfigParser format
2 # Definitions of blacklists for run-tests.py
3 #
4 # Identify in config sections a list of tests you want to be skipped.
5 # Section names are meant to be used as targets for run-tests.py --blacklist
6 # option.
7 # "test-" prefixes should be omitted from test names. Values are not used.
8 #
9 # e.g. if your file looks like:
10 ## [example]
11 ## hgrc =
12 ## help = "this string is not used"
13 # then calling "run-tests.py --blacklist example" will exclude test-hgrc and
14 # test-help from the list of tests to run.
@@ -41,6 +41,7 b''
41 41 # completes fairly quickly, includes both shell and Python scripts, and
42 42 # includes some scripts that run daemon processes.)
43 43
44 from ConfigParser import ConfigParser
44 45 import difflib
45 46 import errno
46 47 import optparse
@@ -132,6 +133,9 b' def parseargs():'
132 133 help="enable Py3k warnings on Python 2.6+")
133 134 parser.add_option("--inotify", action="store_true",
134 135 help="enable inotify extension when running tests")
136 parser.add_option("--blacklist", action="append",
137 help="skip tests listed in the specified section of "
138 "the blacklist file")
135 139
136 140 for option, default in defaults.items():
137 141 defaults[option] = int(os.environ.get(*default))
@@ -197,6 +201,14 b' def parseargs():'
197 201 if options.py3k_warnings:
198 202 if sys.version_info[:2] < (2, 6) or sys.version_info[:2] >= (3, 0):
199 203 parser.error('--py3k-warnings can only be used on Python 2.6+')
204 if options.blacklist:
205 configparser = ConfigParser()
206 configparser.read("blacklist")
207 blacklist = dict()
208 for section in options.blacklist:
209 for (item, value) in configparser.items(section):
210 blacklist["test-" + item] = section
211 options.blacklist = blacklist
200 212
201 213 return (options, args)
202 214
@@ -730,6 +742,13 b' def runtests(options, tests):'
730 742 fails = []
731 743
732 744 for test in tests:
745 if options.blacklist:
746 section = options.blacklist.get(test)
747 if section is not None:
748 skips.append((test, "blacklisted (%s section)" % section))
749 skipped += 1
750 continue
751
733 752 if options.retest and not os.path.exists(test + ".err"):
734 753 skipped += 1
735 754 continue
General Comments 0
You need to be logged in to leave comments. Login now