There was still something wrong. The original NOTTESTS are replaced
by the new '-x' arguments, losing the previous items. Thus,
test_support, test_b1 & test_b2 are executed (and warnings issued).
(Discovered by Vladimir Marangozov.)
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index 9a890a8..5944f8f 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -72,10 +72,13 @@
# Strip trailing ".py" from arguments
if args[i][-3:] == '.py':
args[i] = args[i][:-3]
- stdtests = STDTESTS
- nottests = NOTTESTS
+ stdtests = STDTESTS[:]
+ nottests = NOTTESTS[:]
if exclude:
- nottests = args
+ for arg in args:
+ if arg in stdtests:
+ stdtests.remove(arg)
+ nottests[:0] = args
args = []
tests = tests or args or findtests(testdir, stdtests, nottests)
test_support.verbose = verbose # Tell tests to be moderately quiet