From 91d58bd14640caa2aacd9ebc33569d92de448920 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Sun, 13 Dec 2009 21:30:54 +0000 Subject: Merged revisions 76822,76824 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r76822 | benjamin.peterson | 2009-12-13 15:21:43 -0600 (Sun, 13 Dec 2009) | 1 line initialize to NULL ........ r76824 | benjamin.peterson | 2009-12-13 15:27:53 -0600 (Sun, 13 Dec 2009) | 1 line add a test of loading the datetime capi ........ --- Include/datetime.h | 2 +- Modules/_testcapimodule.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Include/datetime.h b/Include/datetime.h index 4b506b2..d14ead1 100644 --- a/Include/datetime.h +++ b/Include/datetime.h @@ -182,7 +182,7 @@ typedef struct { #else /* Define global variable for the C API and a macro for setting it. */ -static PyDateTime_CAPI *PyDateTimeAPI; +static PyDateTime_CAPI *PyDateTimeAPI = NULL; #define PyDateTime_IMPORT \ PyDateTimeAPI = (PyDateTime_CAPI *)PyCapsule_Import(PyDateTime_CAPSULE_NAME, 0) diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index aca860a..6244f3f 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -10,6 +10,7 @@ #include "Python.h" #include #include "structmember.h" +#include "datetime.h" #ifdef WITH_THREAD #include "pythread.h" @@ -935,6 +936,20 @@ raise_exception(PyObject *self, PyObject *args) #ifdef WITH_THREAD +static PyObject * +test_datetime_capi(PyObject *self, PyObject *args) { + if (PyDateTimeAPI) { + PyErr_SetString(PyExc_AssertionError, + "PyDateTime_CAPI somehow initialized"); + return NULL; + } + PyDateTime_IMPORT; + if (PyDateTimeAPI) + Py_RETURN_NONE; + else + return NULL; +} + /* test_thread_state spawns a thread of its own, and that thread releases * `thread_done` when it's finished. The driver code has to know when the * thread finishes, because the thread uses a PyObject (the callable) that @@ -1531,6 +1546,7 @@ static PyMethodDef TestMethods[] = { {"raise_exception", raise_exception, METH_VARARGS}, {"raise_memoryerror", (PyCFunction)raise_memoryerror, METH_NOARGS}, {"test_config", (PyCFunction)test_config, METH_NOARGS}, + {"test_datetime_capi", test_datetime_capi, METH_NOARGS}, {"test_list_api", (PyCFunction)test_list_api, METH_NOARGS}, {"test_dict_iteration", (PyCFunction)test_dict_iteration,METH_NOARGS}, {"test_lazy_hash_inheritance", (PyCFunction)test_lazy_hash_inheritance,METH_NOARGS}, -- cgit v0.12