[pypy-svn] r49077 - pypy/branch/rewrite-compilation-logic/pypy/translator/c/test

pedronis at codespeak.net pedronis at codespeak.net
Sun Nov 25 14:40:40 CET 2007


Author: pedronis
Date: Sun Nov 25 14:40:38 2007
New Revision: 49077

Modified:
   pypy/branch/rewrite-compilation-logic/pypy/translator/c/test/test_genc.py
Log:
test about the checking of py exception around python capi calls



Modified: pypy/branch/rewrite-compilation-logic/pypy/translator/c/test/test_genc.py
==============================================================================
--- pypy/branch/rewrite-compilation-logic/pypy/translator/c/test/test_genc.py	(original)
+++ pypy/branch/rewrite-compilation-logic/pypy/translator/c/test/test_genc.py	Sun Nov 25 14:40:38 2007
@@ -10,7 +10,6 @@
 from pypy.objspace.flow.model import Block, Link, FunctionGraph
 from pypy.tool.udir import udir
 from pypy.translator.tool.cbuild import make_module_from_c
-from pypy.translator.tool.cbuild import ExternalCompilationInfo
 from pypy.translator.gensupp import uniquemodulename
 from pypy.translator.backendopt.all import backend_optimizations
 from pypy.translator.interactive import Translation
@@ -62,6 +61,25 @@
 
     py.test.raises(Exception, f1, "world")  # check that it's really typed
 
+def test_py_capi_exc():
+    def f(x):
+        if x:
+            l = None
+        else:
+            l = [2]
+        x = x*2
+        return l[0]
+    t = TranslationContext()
+    t.buildannotator().build_types(f, [int])
+    t.buildrtyper().specialize()
+
+    builder = genc.CExtModuleBuilder(t, f, config=t.config)
+    builder.generate_source()
+    builder.compile()
+    f1 = builder.get_entry_point(isolated=True)
+
+    x = py.test.raises(Exception, f1, "world")
+    assert not isinstance(x.value, EOFError) # EOFError === segfault
 
 def test_rlist():
     def f(x):



More information about the Pypy-commit mailing list