diff options
| -rw-r--r-- | testing/embedding/add2-test.c | 14 | ||||
| -rw-r--r-- | testing/embedding/add2.py | 21 | ||||
| -rw-r--r-- | testing/embedding/test_basic.py | 11 |
3 files changed, 46 insertions, 0 deletions
diff --git a/testing/embedding/add2-test.c b/testing/embedding/add2-test.c new file mode 100644 index 0000000..9620843 --- /dev/null +++ b/testing/embedding/add2-test.c @@ -0,0 +1,14 @@ +#include <stdio.h> + +extern int add1(int, int); +extern int add2(int, int, int); + + +int main(void) +{ + int x, y; + x = add1(40, 2); + y = add2(100, -5, -20); + printf("got: %d %d\n", x, y); + return 0; +} diff --git a/testing/embedding/add2.py b/testing/embedding/add2.py new file mode 100644 index 0000000..90d21b7 --- /dev/null +++ b/testing/embedding/add2.py @@ -0,0 +1,21 @@ +import cffi + +ffi = cffi.FFI() + +ffi.cdef(""" + extern "Python" int add2(int, int, int); +""", dllexport=True) + +ffi.embedding_init_code(""" + print("preparing ADD2") + + @ffi.def_extern() + def add2(x, y, z): + print "adding", x, "and", y, "and", z + return x + y + z +""") + +ffi.set_source("_add2_cffi", """ +""") + +ffi.compile() diff --git a/testing/embedding/test_basic.py b/testing/embedding/test_basic.py index 0904164..56401bd 100644 --- a/testing/embedding/test_basic.py +++ b/testing/embedding/test_basic.py @@ -56,3 +56,14 @@ class TestBasic(EmbeddingTests): "adding 40 and 2\n" "adding 100 and -5\n" "got: 42 95\n") + + def test_two_modules(self): + self.prepare_module('add1') + self.prepare_module('add2') + self.compile('add2-test', ['_add1_cffi', '_add2_cffi']) + output = self.execute('add2-test') + assert output == ("preparing\n" + "adding 40 and 2\n" + "preparing ADD2\n" + "adding 100 and -5 and -20\n" + "got: 42 75\n") |
