mirror of https://github.com/python/cpython.git
78 lines
2.0 KiB
C
78 lines
2.0 KiB
C
/* Test version macros in the limited API */
|
|
|
|
#include "pyconfig.h" // Py_GIL_DISABLED
|
|
#ifndef Py_GIL_DISABLED
|
|
# define Py_LIMITED_API 0x030e0000 // Added in 3.14
|
|
#endif
|
|
|
|
#include "parts.h"
|
|
#include "clinic/version.c.h"
|
|
#include <stdio.h>
|
|
|
|
/*[clinic input]
|
|
module _testlimitedcapi
|
|
[clinic start generated code]*/
|
|
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=2700057f9c1135ba]*/
|
|
|
|
/*[clinic input]
|
|
_testlimitedcapi.pack_full_version
|
|
|
|
major: int
|
|
minor: int
|
|
micro: int
|
|
level: int
|
|
serial: int
|
|
/
|
|
[clinic start generated code]*/
|
|
|
|
static PyObject *
|
|
_testlimitedcapi_pack_full_version_impl(PyObject *module, int major,
|
|
int minor, int micro, int level,
|
|
int serial)
|
|
/*[clinic end generated code: output=b87a1e9805648861 input=2a304423be61d2ac]*/
|
|
{
|
|
uint32_t macro_result = Py_PACK_FULL_VERSION(
|
|
major, minor, micro, level, serial);
|
|
#undef Py_PACK_FULL_VERSION
|
|
uint32_t func_result = Py_PACK_FULL_VERSION(
|
|
major, minor, micro, level, serial);
|
|
|
|
assert(macro_result == func_result);
|
|
return PyLong_FromUnsignedLong((unsigned long)func_result);
|
|
}
|
|
|
|
/*[clinic input]
|
|
_testlimitedcapi.pack_version
|
|
|
|
major: int
|
|
minor: int
|
|
/
|
|
[clinic start generated code]*/
|
|
|
|
static PyObject *
|
|
_testlimitedcapi_pack_version_impl(PyObject *module, int major, int minor)
|
|
/*[clinic end generated code: output=771247bbd06e7883 input=3e39e9dcbc09e86a]*/
|
|
{
|
|
uint32_t macro_result = Py_PACK_VERSION(major, minor);
|
|
#undef Py_PACK_VERSION
|
|
uint32_t func_result = Py_PACK_VERSION(major, minor);
|
|
|
|
assert(macro_result == func_result);
|
|
return PyLong_FromUnsignedLong((unsigned long)func_result);
|
|
}
|
|
|
|
static PyMethodDef TestMethods[] = {
|
|
_TESTLIMITEDCAPI_PACK_FULL_VERSION_METHODDEF
|
|
_TESTLIMITEDCAPI_PACK_VERSION_METHODDEF
|
|
{NULL},
|
|
};
|
|
|
|
int
|
|
_PyTestLimitedCAPI_Init_Version(PyObject *m)
|
|
{
|
|
if (PyModule_AddFunctions(m, TestMethods) < 0) {
|
|
return -1;
|
|
}
|
|
return 0;
|
|
}
|