SF bug #762455: Python segfaults when sys.stdout is changed in getattr

* Added unittest that fails before, but not after Neil's fix to ceval.c.
This commit is contained in:
Raymond Hettinger 2003-06-29 15:44:07 +00:00
parent c5131bc256
commit 2b6220d88b
1 changed files with 15 additions and 0 deletions

View File

@ -3916,6 +3916,20 @@ def weakref_segfault():
o.whatever = Provoker(o)
del o
# Fix SF #762455, segfault when sys.stdout is changed in getattr
def filefault():
if verbose:
print "Testing sys.stdout is changed in getattr..."
import sys
class StdoutGuard:
def __getattr__(self, attr):
sys.stdout = sys.__stdout__
raise RuntimeError("Premature access to sys.stdout.%s" % attr)
sys.stdout = StdoutGuard()
try:
print "Oops!"
except RuntimeError:
pass
def test_main():
weakref_segfault() # Must be first, somehow
@ -4007,6 +4021,7 @@ def test_main():
isinst_isclass()
proxysuper()
carloverre()
filefault()
if verbose: print "All OK"