summaryrefslogtreecommitdiffstats
path: root/Lib/test/regrtest.py
diff options
context:
space:
mode:
authorFlorent Xicluna <florent.xicluna@gmail.com>2010-03-30 19:43:09 (GMT)
committerFlorent Xicluna <florent.xicluna@gmail.com>2010-03-30 19:43:09 (GMT)
commitd6995eb58214b1395814e05f127b7ec9294e39b2 (patch)
treeefc54ce4e3f14464280e56f2fb612c5eaa783fbf /Lib/test/regrtest.py
parent704ed93efb24c77a7328b7aa5cb7483bf76ab969 (diff)
downloadcpython-d6995eb58214b1395814e05f127b7ec9294e39b2.zip
cpython-d6995eb58214b1395814e05f127b7ec9294e39b2.tar.gz
cpython-d6995eb58214b1395814e05f127b7ec9294e39b2.tar.bz2
Merged revisions 79497 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r79497 | florent.xicluna | 2010-03-30 18:31:14 +0200 (mar, 30 mar 2010) | 2 lines #8263: Now regrtest.py will report a failure if it receives a KeyboardInterrupt (SIGINT). ........
Diffstat (limited to 'Lib/test/regrtest.py')
-rwxr-xr-xLib/test/regrtest.py30
1 files changed, 18 insertions, 12 deletions
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index c37b0bf..f3c2a5f 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -397,6 +397,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
skipped = []
resource_denieds = []
environment_changed = []
+ interrupted = False
if findleaks:
try:
@@ -451,11 +452,11 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
print("== ", os.getcwd())
alltests = findtests(testdir, stdtests, nottests)
- tests = tests or args or alltests
+ selected = tests or args or alltests
if single:
- tests = tests[:1]
+ selected = selected[:1]
try:
- next_single_test = alltests[alltests.index(tests[0])+1]
+ next_single_test = alltests[alltests.index(selected[0])+1]
except IndexError:
next_single_test = None
# Remove all the tests that precede start if it's set.
@@ -467,7 +468,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
if randomize:
random.seed(random_seed)
print("Using random seed", random_seed)
- random.shuffle(tests)
+ random.shuffle(selected)
if trace:
import trace, tempfile
tracer = trace.Trace(ignoredirs=[sys.prefix, sys.exec_prefix,
@@ -496,7 +497,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
resource_denieds.append(test)
if forever:
- def test_forever(tests=list(tests)):
+ def test_forever(tests=list(selected)):
while True:
for test in tests:
yield test
@@ -504,15 +505,13 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
return
tests = test_forever()
else:
- tests = iter(tests)
+ tests = iter(selected)
if use_mp:
from threading import Thread
from queue import Queue
from subprocess import Popen, PIPE
- from collections import deque
debug_output_pat = re.compile(r"\[\d+ refs\]$")
- pending = deque()
output = Queue()
def tests_and_args():
for test in tests:
@@ -571,6 +570,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
raise KeyboardInterrupt # What else?
accumulate_result(test, result)
except KeyboardInterrupt:
+ interrupted = True
pending.close()
for worker in workers:
worker.join()
@@ -593,8 +593,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
print("Re-running test {} in verbose mode".format(test))
runtest(test, True, quiet, testdir, huntrleaks, debug)
except KeyboardInterrupt:
- # print a newline separate from the ^C
- print()
+ interrupted = True
break
except:
raise
@@ -612,8 +611,15 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
if module not in save_modules and module.startswith("test."):
support.unload(module)
+ if interrupted:
+ # print a newline after ^C
+ print()
+ print("Test suite interrupted by signal SIGINT.")
+ omitted = set(selected) - set(good) - set(bad) - set(skipped)
+ print(count(len(omitted), "test"), "omitted:")
+ printlist(omitted)
if good and not quiet:
- if not bad and not skipped and len(good) > 1:
+ if not bad and not skipped and not interrupted and len(good) > 1:
print("All", end=' ')
print(count(len(good), "test"), "OK.")
if print_slow:
@@ -678,7 +684,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
if runleaks:
os.system("leaks %d" % os.getpid())
- sys.exit(len(bad) > 0)
+ sys.exit(len(bad) > 0 or interrupted)
STDTESTS = [