diff options
author | Jeremy Hylton <jeremy@alum.mit.edu> | 2001-12-13 19:45:04 (GMT) |
---|---|---|
committer | Jeremy Hylton <jeremy@alum.mit.edu> | 2001-12-13 19:45:04 (GMT) |
commit | ccae8377a329fe60193a605697b5ffefb4734960 (patch) | |
tree | d9cb2c9bc4ca70f237acc3dc691c8377b4d808e4 /Lib | |
parent | 6272dfd99fb02d80a96f1d0928d1488ee164536a (diff) | |
download | cpython-ccae8377a329fe60193a605697b5ffefb4734960.zip cpython-ccae8377a329fe60193a605697b5ffefb4734960.tar.gz cpython-ccae8377a329fe60193a605697b5ffefb4734960.tar.bz2 |
Add test for SF bug [ #492403 ] exec() segfaults on closure's func_code
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_scope.py | 12 |
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" |