1 #ifndef Py_TESTCAPI_PARTS_H
2 #define Py_TESTCAPI_PARTS_H
3
4 #include "pyconfig.h" // for Py_TRACE_REFS
5
6 // Figure out if Limited API is available for this build. If it isn't we won't
7 // build tests for it.
8 // Currently, only Py_TRACE_REFS disables Limited API.
9 #ifdef Py_TRACE_REFS
10 #undef LIMITED_API_AVAILABLE
11 #else
12 #define LIMITED_API_AVAILABLE 1
13 #endif
14
15 // Always enable assertions
16 #undef NDEBUG
17
18 #if !defined(LIMITED_API_AVAILABLE) && defined(Py_LIMITED_API)
19 // Limited API being unavailable means that with Py_LIMITED_API defined
20 // we can't even include Python.h.
21 // Do nothing; the .c file that defined Py_LIMITED_API should also do nothing.
22
23 #else
24
25 #include "Python.h"
26
27 int _PyTestCapi_Init_Vectorcall(PyObject *module);
28 int _PyTestCapi_Init_Heaptype(PyObject *module);
29 int _PyTestCapi_Init_Abstract(PyObject *module);
30 int _PyTestCapi_Init_Unicode(PyObject *module);
31 int _PyTestCapi_Init_GetArgs(PyObject *module);
32 int _PyTestCapi_Init_PyTime(PyObject *module);
33 int _PyTestCapi_Init_DateTime(PyObject *module);
34 int _PyTestCapi_Init_Docstring(PyObject *module);
35 int _PyTestCapi_Init_Mem(PyObject *module);
36 int _PyTestCapi_Init_Watchers(PyObject *module);
37 int _PyTestCapi_Init_Long(PyObject *module);
38 int _PyTestCapi_Init_Float(PyObject *module);
39 int _PyTestCapi_Init_Dict(PyObject *module);
40 int _PyTestCapi_Init_Structmember(PyObject *module);
41 int _PyTestCapi_Init_Exceptions(PyObject *module);
42 int _PyTestCapi_Init_Code(PyObject *module);
43 int _PyTestCapi_Init_Buffer(PyObject *module);
44 int _PyTestCapi_Init_PyOS(PyObject *module);
45 int _PyTestCapi_Init_Immortal(PyObject *module);
46 int _PyTestCapi_Init_GC(PyObject *mod);
47
48 #ifdef LIMITED_API_AVAILABLE
49 int _PyTestCapi_Init_VectorcallLimited(PyObject *module);
50 int _PyTestCapi_Init_HeaptypeRelative(PyObject *module);
51 #endif // LIMITED_API_AVAILABLE
52
53 #endif
54 #endif // Py_TESTCAPI_PARTS_H