Merged revisions 75279 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ................ r75279 | r.david.murray | 2009-10-07 19:38:55 -0400 (Wed, 07 Oct 2009) | 10 lines Merged revisions 75255 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r75255 | r.david.murray | 2009-10-05 13:03:09 -0400 (Mon, 05 Oct 2009) | 3 lines Issue #7058: Added save/restore for argv and os.environ to runtest_inner in regrtest, with warnings if the called test modifies them. ........ ................
This commit is contained in:
parent
b090761ec0
commit
6bf5a2e85b
|
@ -598,6 +598,10 @@ def runtest_inner(test, generate, verbose, quiet, test_times,
|
|||
refleak = False # True if the test leaked references.
|
||||
try:
|
||||
save_stdout = sys.stdout
|
||||
# Save various things that tests may mess up so we can restore
|
||||
# them afterward.
|
||||
save_environ = dict(os.environ)
|
||||
save_argv = sys.argv[:]
|
||||
try:
|
||||
if cfp:
|
||||
sys.stdout = cfp
|
||||
|
@ -622,6 +626,17 @@ def runtest_inner(test, generate, verbose, quiet, test_times,
|
|||
test_times.append((test_time, test))
|
||||
finally:
|
||||
sys.stdout = save_stdout
|
||||
# Restore what we saved if needed, but also complain if the test
|
||||
# changed it so that the test may eventually get fixed.
|
||||
if not os.environ == save_environ:
|
||||
if not quiet:
|
||||
print("Warning: os.environ was modified by", test)
|
||||
os.environ.clear()
|
||||
os.environ.update(save_environ)
|
||||
if not sys.argv == save_argv:
|
||||
if not quiet:
|
||||
print("Warning: argv was modified by", test)
|
||||
sys.argv[:] = save_argv
|
||||
except support.ResourceDenied as msg:
|
||||
if not quiet:
|
||||
print(test, "skipped --", msg)
|
||||
|
|
Loading…
Reference in New Issue