mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Use constants instead of magic integers for test result. Do not re-run with --verbose3 for environment changing tests.
This commit is contained in:
parent
97269c4546
commit
4045e88b8b
1 changed files with 37 additions and 30 deletions
|
@ -194,6 +194,14 @@ if sys.platform == 'darwin':
|
||||||
newsoft = min(hard, max(soft, 1024*2048))
|
newsoft = min(hard, max(soft, 1024*2048))
|
||||||
resource.setrlimit(resource.RLIMIT_STACK, (newsoft, hard))
|
resource.setrlimit(resource.RLIMIT_STACK, (newsoft, hard))
|
||||||
|
|
||||||
|
# Test result constants.
|
||||||
|
PASSED = 1
|
||||||
|
FAILED = 0
|
||||||
|
ENV_CHANGED = -1
|
||||||
|
SKIPPED = -2
|
||||||
|
RESOURCE_DENIED = -3
|
||||||
|
INTERRUPTED = -4
|
||||||
|
|
||||||
from test import test_support
|
from test import test_support
|
||||||
|
|
||||||
RESOURCE_NAMES = ('audio', 'curses', 'largefile', 'network', 'bsddb',
|
RESOURCE_NAMES = ('audio', 'curses', 'largefile', 'network', 'bsddb',
|
||||||
|
@ -328,7 +336,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
|
||||||
try:
|
try:
|
||||||
result = runtest(*args, **kwargs)
|
result = runtest(*args, **kwargs)
|
||||||
except BaseException, e:
|
except BaseException, e:
|
||||||
result = -4, e.__class__.__name__
|
result = INTERRUPTED, e.__class__.__name__
|
||||||
print # Force a newline (just in case)
|
print # Force a newline (just in case)
|
||||||
print json.dumps(result)
|
print json.dumps(result)
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
@ -410,19 +418,18 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
|
||||||
def accumulate_result(test, result):
|
def accumulate_result(test, result):
|
||||||
ok, test_time = result
|
ok, test_time = result
|
||||||
test_times.append((test_time, test))
|
test_times.append((test_time, test))
|
||||||
if ok > 0:
|
if ok == PASSED:
|
||||||
good.append(test)
|
good.append(test)
|
||||||
return 'good'
|
elif ok == FAILED:
|
||||||
elif -2 < ok <= 0:
|
|
||||||
bad.append(test)
|
bad.append(test)
|
||||||
if ok == -1:
|
elif ok == ENV_CHANGED:
|
||||||
environment_changed.append(test)
|
bad.append(test)
|
||||||
return 'bad'
|
environment_changed.append(test)
|
||||||
else:
|
elif ok == SKIPPED:
|
||||||
skipped.append(test)
|
skipped.append(test)
|
||||||
if ok == -3:
|
elif ok == RESOURCE_DENIED:
|
||||||
resource_denieds.append(test)
|
skipped.append(test)
|
||||||
return 'skipped'
|
resource_denieds.append(test)
|
||||||
|
|
||||||
if use_mp:
|
if use_mp:
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
@ -477,7 +484,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
|
||||||
print stdout
|
print stdout
|
||||||
if stderr:
|
if stderr:
|
||||||
print >>sys.stderr, stderr
|
print >>sys.stderr, stderr
|
||||||
if result[0] == -4:
|
if result[0] == INTERRUPTED:
|
||||||
assert result[1] == 'KeyboardInterrupt'
|
assert result[1] == 'KeyboardInterrupt'
|
||||||
pending.clear()
|
pending.clear()
|
||||||
raise KeyboardInterrupt # What else?
|
raise KeyboardInterrupt # What else?
|
||||||
|
@ -498,8 +505,8 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
|
||||||
try:
|
try:
|
||||||
result = runtest(test, verbose, quiet,
|
result = runtest(test, verbose, quiet,
|
||||||
testdir, huntrleaks)
|
testdir, huntrleaks)
|
||||||
which = accumulate_result(test, result)
|
accumulate_result(test, result)
|
||||||
if verbose3 and which == 'bad':
|
if verbose3 and result[0] == FAILED:
|
||||||
print "Re-running test %r in verbose mode" % test
|
print "Re-running test %r in verbose mode" % test
|
||||||
runtest(test, True, quiet, testdir, huntrleaks)
|
runtest(test, True, quiet, testdir, huntrleaks)
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
|
@ -646,13 +653,13 @@ def runtest(test, verbose, quiet,
|
||||||
testdir -- test directory
|
testdir -- test directory
|
||||||
huntrleaks -- run multiple times to test for leaks; requires a debug
|
huntrleaks -- run multiple times to test for leaks; requires a debug
|
||||||
build; a triple corresponding to -R's three arguments
|
build; a triple corresponding to -R's three arguments
|
||||||
Return:
|
Returns one of the test result constants:
|
||||||
-4 KeyboardInterrupt when run under -j
|
INTERRUPTED KeyboardInterrupt when run under -j
|
||||||
-3 test skipped because resource denied
|
RESOURCE_DENIED test skipped because resource denied
|
||||||
-2 test skipped for some other reason
|
SKIPPED test skipped for some other reason
|
||||||
-1 test failed because it changed the execution environment
|
ENV_CHANGED test failed because it changed the execution environment
|
||||||
0 test failed
|
FAILED test failed
|
||||||
1 test passed
|
PASSED test passed
|
||||||
"""
|
"""
|
||||||
|
|
||||||
test_support.verbose = verbose # Tell tests to be moderately quiet
|
test_support.verbose = verbose # Tell tests to be moderately quiet
|
||||||
|
@ -823,18 +830,18 @@ def runtest_inner(test, verbose, quiet,
|
||||||
if not quiet:
|
if not quiet:
|
||||||
print test, "skipped --", msg
|
print test, "skipped --", msg
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
return -3, test_time
|
return RESOURCE_DENIED, test_time
|
||||||
except unittest.SkipTest, msg:
|
except unittest.SkipTest, msg:
|
||||||
if not quiet:
|
if not quiet:
|
||||||
print test, "skipped --", msg
|
print test, "skipped --", msg
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
return -2, test_time
|
return SKIPPED, test_time
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
raise
|
raise
|
||||||
except test_support.TestFailed, msg:
|
except test_support.TestFailed, msg:
|
||||||
print "test", test, "failed --", msg
|
print "test", test, "failed --", msg
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
return 0, test_time
|
return FAILED, test_time
|
||||||
except:
|
except:
|
||||||
type, value = sys.exc_info()[:2]
|
type, value = sys.exc_info()[:2]
|
||||||
print "test", test, "crashed --", str(type) + ":", value
|
print "test", test, "crashed --", str(type) + ":", value
|
||||||
|
@ -842,24 +849,24 @@ def runtest_inner(test, verbose, quiet,
|
||||||
if verbose:
|
if verbose:
|
||||||
traceback.print_exc(file=sys.stdout)
|
traceback.print_exc(file=sys.stdout)
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
return 0, test_time
|
return FAILED, test_time
|
||||||
else:
|
else:
|
||||||
if refleak:
|
if refleak:
|
||||||
return 0, test_time
|
return FAILED, test_time
|
||||||
if environment.changed:
|
if environment.changed:
|
||||||
return -1, test_time
|
return ENVIRONMENT_CHANGED, test_time
|
||||||
# Except in verbose mode, tests should not print anything
|
# Except in verbose mode, tests should not print anything
|
||||||
if verbose or huntrleaks:
|
if verbose or huntrleaks:
|
||||||
return 1, test_time
|
return PASSED, test_time
|
||||||
output = capture_stdout.getvalue()
|
output = capture_stdout.getvalue()
|
||||||
if not output:
|
if not output:
|
||||||
return 1, test_time
|
return PASSED, test_time
|
||||||
print "test", test, "produced unexpected output:"
|
print "test", test, "produced unexpected output:"
|
||||||
print "*" * 70
|
print "*" * 70
|
||||||
print output
|
print output
|
||||||
print "*" * 70
|
print "*" * 70
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
return 0, test_time
|
return FAILED, test_time
|
||||||
|
|
||||||
def cleanup_test_droppings(testname, verbose):
|
def cleanup_test_droppings(testname, verbose):
|
||||||
import shutil
|
import shutil
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue