[pypy-commit] cffi default: Test and fix for converting empty ffi's in embedding mode

arigo pypy.commits at gmail.com
Fri Apr 15 11:55:07 EDT 2016


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r2657:28bd9c90bce3
Date: 2016-04-15 17:55 +0200
http://bitbucket.org/cffi/cffi/changeset/28bd9c90bce3/

Log:	Test and fix for converting empty ffi's in embedding mode

diff --git a/cffi/recompiler.py b/cffi/recompiler.py
--- a/cffi/recompiler.py
+++ b/cffi/recompiler.py
@@ -1231,7 +1231,7 @@
             if c == '\n': return '\\n'
             return '\\%03o' % ord(c)
         lines = []
-        for line in s.splitlines(True):
+        for line in s.splitlines(True) or ['']:
             lines.append('"%s"' % ''.join([_char_repr(c) for c in line]))
         return ' \\\n'.join(lines)
 
diff --git a/testing/embedding/empty.py b/testing/embedding/empty.py
new file mode 100644
--- /dev/null
+++ b/testing/embedding/empty.py
@@ -0,0 +1,10 @@
+import cffi
+
+ffi = cffi.FFI()
+
+ffi.embedding_api("")
+
+ffi.set_source("_empty_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
@@ -164,6 +164,9 @@
 
 
 class TestBasic(EmbeddingTests):
+    def test_empty(self):
+        empty_cffi = self.prepare_module('empty')
+
     def test_basic(self):
         add1_cffi = self.prepare_module('add1')
         self.compile('add1-test', [add1_cffi])


More information about the pypy-commit mailing list