summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Hylton <jeremy@alum.mit.edu>2001-12-13 19:45:04 (GMT)
committerJeremy Hylton <jeremy@alum.mit.edu>2001-12-13 19:45:04 (GMT)
commitccae8377a329fe60193a605697b5ffefb4734960 (patch)
treed9cb2c9bc4ca70f237acc3dc691c8377b4d808e4
parent6272dfd99fb02d80a96f1d0928d1488ee164536a (diff)
downloadcpython-ccae8377a329fe60193a605697b5ffefb4734960.zip
cpython-ccae8377a329fe60193a605697b5ffefb4734960.tar.gz
cpython-ccae8377a329fe60193a605697b5ffefb4734960.tar.bz2
Add test for SF bug [ #492403 ] exec() segfaults on closure's func_code
-rw-r--r--Lib/test/test_scope.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/Lib/test/test_scope.py b/Lib/test/test_scope.py
index 18dd0c7..3bb1fdd 100644
--- a/Lib/test/test_scope.py
+++ b/Lib/test/test_scope.py
@@ -461,7 +461,8 @@ def adaptgetter(name, klass, getter):
kind, des = getter
if kind == 1: # AV happens when stepping from this line to next
if des == "":
- des = "_%s__%s" % (klass.__name__, name)
+## des = "_%s__%s" % (klass.__name__, name)
+ des = "1"
return lambda obj: getattr(obj, des)
class TestClass:
@@ -471,7 +472,7 @@ sys.settrace(tracer)
adaptgetter("foo", TestClass, (1, ""))
sys.settrace(None)
-print "20. eval with free variables"
+print "20. eval and exec with free variables"
def f(x):
return lambda: x + 1
@@ -484,6 +485,13 @@ except TypeError:
else:
print "eval() should have failed, because code contained free vars"
+try:
+ exec g.func_code
+except TypeError:
+ pass
+else:
+ print "exec should have failed, because code contained free vars"
+
warnings.resetwarnings()
print "21. list comprehension with local variables"