aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Svetlov <andrew.svetlov@gmail.com>2012-12-14 17:04:59 +0200
committerAndrew Svetlov <andrew.svetlov@gmail.com>2012-12-14 17:04:59 +0200
commit6b2cbeba58aeb0755bdefd02fb51a80ec66d6144 (patch)
tree2634f036965fc3ebf737ef3ce1b830437de9a04f /Modules/_testimportmultiple.c
parentcompile doesn't accept code objects (diff)
downloadcpython-6b2cbeba58aeb0755bdefd02fb51a80ec66d6144.tar.gz
cpython-6b2cbeba58aeb0755bdefd02fb51a80ec66d6144.tar.bz2
cpython-6b2cbeba58aeb0755bdefd02fb51a80ec66d6144.zip
Issue #16421: allow to load multiple modules from the same shared object.
Patch by Václav Šmilauer.
Diffstat (limited to 'Modules/_testimportmultiple.c')
-rw-r--r--Modules/_testimportmultiple.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/Modules/_testimportmultiple.c b/Modules/_testimportmultiple.c
new file mode 100644
index 00000000000..baad29daaca
--- /dev/null
+++ b/Modules/_testimportmultiple.c
@@ -0,0 +1,57 @@
+/*
+ * C extensions module to test importing multiple modules from one compiled
+ * file (issue16421). This file defines 3 modules (_testimportmodule,
+ * foo, bar), only the first one is called the same as the compiled file.
+ */
+#include<Python.h>
+
+static struct PyModuleDef _testimportmultiple = {
+ PyModuleDef_HEAD_INIT,
+ "_testimportmultiple",
+ "_testimportmultiple doc",
+ -1,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
+
+PyMODINIT_FUNC PyInit__testimportmultiple()
+{
+ return PyModule_Create(&_testimportmultiple);
+}
+
+static struct PyModuleDef _foomodule = {
+ PyModuleDef_HEAD_INIT,
+ "foo",
+ "foo doc",
+ -1,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
+
+PyMODINIT_FUNC PyInit_foo()
+{
+ return PyModule_Create(&_foomodule);
+}
+
+static struct PyModuleDef _barmodule = {
+ PyModuleDef_HEAD_INIT,
+ "bar",
+ "bar doc",
+ -1,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
+
+PyMODINIT_FUNC PyInit_bar(){
+ return PyModule_Create(&_barmodule);
+}
+