Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r2979:b0f094e3f3eb
Date: 2017-06-16 13:44 +0200
http://bitbucket.org/cffi/cffi/changeset/b0f094e3f3eb/

Log:    Basic "does not crash" test for the error logic in
        _cffi_initialize_python

diff --git a/testing/embedding/initerror.py b/testing/embedding/initerror.py
new file mode 100644
--- /dev/null
+++ b/testing/embedding/initerror.py
@@ -0,0 +1,18 @@
+import cffi
+
+ffi = cffi.FFI()
+
+ffi.embedding_api("""
+    int add1(int, int);
+""")
+
+ffi.embedding_init_code(r"""
+    raise KeyError
+""")
+
+ffi.set_source("_initerror_cffi", """
+""")
+
+fn = ffi.compile(verbose=True)
+print('FILENAME: %s' % (fn,))
+
diff --git a/testing/embedding/test_basic.py b/testing/embedding/test_basic.py
--- a/testing/embedding/test_basic.py
+++ b/testing/embedding/test_basic.py
@@ -199,3 +199,9 @@
                           "prepADD2\n"
                           "adding 100 and -5 and -20\n"
                           "got: 42 75\n")
+
+    def test_init_time_error(self):
+        initerror_cffi = self.prepare_module('initerror')
+        self.compile('add1-test', [initerror_cffi])
+        output = self.execute('add1-test')
+        assert output == "got: 0 0\n"    # plus lots of info to stderr
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to