mirror of
https://github.com/python/cpython.git
synced 2025-12-04 00:30:19 +00:00
bpo-36635: Add _testinternalcapi module (GH-12841)
Add a new _testinternalcapi module to test the internal C API. Move _Py_GetConfigsAsDict() function to the internal C API: _testembed now uses _testinternalcapi to access the function.
This commit is contained in:
parent
11efd79076
commit
23bace26ec
13 changed files with 172 additions and 49 deletions
45
Modules/_testinternalcapi.c
Normal file
45
Modules/_testinternalcapi.c
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* C Extension module to test Python internal C APIs (Include/internal).
|
||||
*/
|
||||
|
||||
#if !defined(Py_BUILD_CORE_BUILTIN) && !defined(Py_BUILD_CORE_MODULE)
|
||||
# error "Py_BUILD_CORE_BUILTIN or Py_BUILD_CORE_MODULE must be defined"
|
||||
#endif
|
||||
|
||||
#define PY_SSIZE_T_CLEAN
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_coreconfig.h"
|
||||
|
||||
|
||||
static PyObject *
|
||||
get_configs(PyObject *self, PyObject *Py_UNUSED(args))
|
||||
{
|
||||
return _Py_GetConfigsAsDict();
|
||||
}
|
||||
|
||||
|
||||
static PyMethodDef TestMethods[] = {
|
||||
{"get_configs", get_configs, METH_NOARGS},
|
||||
{NULL, NULL} /* sentinel */
|
||||
};
|
||||
|
||||
|
||||
static struct PyModuleDef _testcapimodule = {
|
||||
PyModuleDef_HEAD_INIT,
|
||||
"_testinternalcapi",
|
||||
NULL,
|
||||
-1,
|
||||
TestMethods,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
PyMODINIT_FUNC
|
||||
PyInit__testinternalcapi(void)
|
||||
{
|
||||
return PyModule_Create(&_testcapimodule);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue