From ccae8377a329fe60193a605697b5ffefb4734960 Mon Sep 17 00:00:00 2001 From: Jeremy Hylton Date: Thu, 13 Dec 2001 19:45:04 +0000 Subject: Add test for SF bug [ #492403 ] exec() segfaults on closure's func_code --- Lib/test/test_scope.py | 12 ++++++++++-- 1 file 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" -- cgit v0.12