diff options
author | Victor Stinner <vstinner@python.org> | 2024-03-11 10:28:16 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-11 10:28:16 (GMT) |
commit | 1cc02ca063f50b8c527fbdde9957b03c145c1575 (patch) | |
tree | 84cd4d2d13c8ca869749827d8f91d592e8a01ca2 /Modules/_testcapi | |
parent | d8712fa0c75ad5ea56543903fa45674ab47cc647 (diff) | |
download | cpython-1cc02ca063f50b8c527fbdde9957b03c145c1575.zip cpython-1cc02ca063f50b8c527fbdde9957b03c145c1575.tar.gz cpython-1cc02ca063f50b8c527fbdde9957b03c145c1575.tar.bz2 |
gh-116417: Move 4 limited C API test files to _testlimitedcapi (#116571)
Move the following files from Modules/_testcapi/ to
Modules/_testlimitedcapi/:
* bytearray.c
* bytes.c
* pyos.c
* sys.c
Changes:
* Replace PyBytes_AS_STRING() with PyBytes_AsString().
* Replace PyBytes_GET_SIZE() with PyBytes_Size().
* Update related test_capi tests.
* Copy Modules/_testcapi/util.h to Modules/_testlimitedcapi/util.h.
Diffstat (limited to 'Modules/_testcapi')
-rw-r--r-- | Modules/_testcapi/bytearray.c | 123 | ||||
-rw-r--r-- | Modules/_testcapi/bytes.c | 255 | ||||
-rw-r--r-- | Modules/_testcapi/parts.h | 4 | ||||
-rw-r--r-- | Modules/_testcapi/pyos.c | 60 | ||||
-rw-r--r-- | Modules/_testcapi/sys.c | 56 |
5 files changed, 0 insertions, 498 deletions
diff --git a/Modules/_testcapi/bytearray.c b/Modules/_testcapi/bytearray.c deleted file mode 100644 index dc47ed2..0000000 --- a/Modules/_testcapi/bytearray.c +++ /dev/null @@ -1,123 +0,0 @@ -#include "parts.h" -#include "util.h" - - -/* Test PyByteArray_Check() */ -static PyObject * -bytearray_check(PyObject *Py_UNUSED(module), PyObject *obj) -{ - NULLABLE(obj); - return PyLong_FromLong(PyByteArray_Check(obj)); -} - -/* Test PyByteArray_CheckExact() */ -static PyObject * -bytearray_checkexact(PyObject *Py_UNUSED(module), PyObject *obj) -{ - NULLABLE(obj); - return PyLong_FromLong(PyByteArray_CheckExact(obj)); -} - -/* Test PyByteArray_FromStringAndSize() */ -static PyObject * -bytearray_fromstringandsize(PyObject *Py_UNUSED(module), PyObject *args) -{ - const char *s; - Py_ssize_t bsize; - Py_ssize_t size = -100; - - if (!PyArg_ParseTuple(args, "z#|n", &s, &bsize, &size)) { - return NULL; - } - - if (size == -100) { - size = bsize; - } - return PyByteArray_FromStringAndSize(s, size); -} - -/* Test PyByteArray_FromObject() */ -static PyObject * -bytearray_fromobject(PyObject *Py_UNUSED(module), PyObject *arg) -{ - NULLABLE(arg); - return PyByteArray_FromObject(arg); -} - -/* Test PyByteArray_Size() */ -static PyObject * -bytearray_size(PyObject *Py_UNUSED(module), PyObject *arg) -{ - NULLABLE(arg); - RETURN_SIZE(PyByteArray_Size(arg)); -} - -/* Test PyUnicode_AsString() */ -static PyObject * -bytearray_asstring(PyObject *Py_UNUSED(module), PyObject *args) -{ - PyObject *obj; - Py_ssize_t buflen; - const char *s; - - if (!PyArg_ParseTuple(args, "On", &obj, &buflen)) - return NULL; - - NULLABLE(obj); - s = PyByteArray_AsString(obj); - if (s == NULL) - return NULL; - - return PyByteArray_FromStringAndSize(s, buflen); -} - -/* Test PyByteArray_Concat() */ -static PyObject * -bytearray_concat(PyObject *Py_UNUSED(module), PyObject *args) -{ - PyObject *left, *right; - - if (!PyArg_ParseTuple(args, "OO", &left, &right)) - return NULL; - - NULLABLE(left); - NULLABLE(right); - return PyByteArray_Concat(left, right); -} - -/* Test PyByteArray_Resize() */ -static PyObject * -bytearray_resize(PyObject *Py_UNUSED(module), PyObject *args) -{ - PyObject *obj; - Py_ssize_t size; - - if (!PyArg_ParseTuple(args, "On", &obj, &size)) - return NULL; - - NULLABLE(obj); - RETURN_INT(PyByteArray_Resize(obj, size)); -} - - -static PyMethodDef test_methods[] = { - {"bytearray_check", bytearray_check, METH_O}, - {"bytearray_checkexact", bytearray_checkexact, METH_O}, - {"bytearray_fromstringandsize", bytearray_fromstringandsize, METH_VARARGS}, - {"bytearray_fromobject", bytearray_fromobject, METH_O}, - {"bytearray_size", bytearray_size, METH_O}, - {"bytearray_asstring", bytearray_asstring, METH_VARARGS}, - {"bytearray_concat", bytearray_concat, METH_VARARGS}, - {"bytearray_resize", bytearray_resize, METH_VARARGS}, - {NULL}, -}; - -int -_PyTestCapi_Init_ByteArray(PyObject *m) -{ - if (PyModule_AddFunctions(m, test_methods) < 0) { - return -1; - } - - return 0; -} diff --git a/Modules/_testcapi/bytes.c b/Modules/_testcapi/bytes.c deleted file mode 100644 index da10503..0000000 --- a/Modules/_testcapi/bytes.c +++ /dev/null @@ -1,255 +0,0 @@ -#include "parts.h" -#include "util.h" - - -/* Test PyBytes_Check() */ -static PyObject * -bytes_check(PyObject *Py_UNUSED(module), PyObject *obj) -{ - NULLABLE(obj); - return PyLong_FromLong(PyBytes_Check(obj)); -} - -/* Test PyBytes_CheckExact() */ -static PyObject * -bytes_checkexact(PyObject *Py_UNUSED(module), PyObject *obj) -{ - NULLABLE(obj); - return PyLong_FromLong(PyBytes_CheckExact(obj)); -} - -/* Test PyBytes_FromStringAndSize() */ -static PyObject * -bytes_fromstringandsize(PyObject *Py_UNUSED(module), PyObject *args) -{ - const char *s; - Py_ssize_t bsize; - Py_ssize_t size = -100; - - if (!PyArg_ParseTuple(args, "z#|n", &s, &bsize, &size)) { - return NULL; - } - - if (size == -100) { - size = bsize; - } - return PyBytes_FromStringAndSize(s, size); -} - -/* Test PyBytes_FromString() */ -static PyObject * -bytes_fromstring(PyObject *Py_UNUSED(module), PyObject *arg) -{ - const char *s; - Py_ssize_t size; - - if (!PyArg_Parse(arg, "z#", &s, &size)) { - return NULL; - } - return PyBytes_FromString(s); -} - -/* Test PyBytes_FromObject() */ -static PyObject * -bytes_fromobject(PyObject *Py_UNUSED(module), PyObject *arg) -{ - NULLABLE(arg); - return PyBytes_FromObject(arg); -} - -/* Test PyBytes_Size() */ -static PyObject * -bytes_size(PyObject *Py_UNUSED(module), PyObject *arg) -{ - NULLABLE(arg); - RETURN_SIZE(PyBytes_Size(arg)); -} - -/* Test PyUnicode_AsString() */ -static PyObject * -bytes_asstring(PyObject *Py_UNUSED(module), PyObject *args) -{ - PyObject *obj; - Py_ssize_t buflen; - const char *s; - - if (!PyArg_ParseTuple(args, "On", &obj, &buflen)) - return NULL; - - NULLABLE(obj); - s = PyBytes_AsString(obj); - if (s == NULL) - return NULL; - - return PyBytes_FromStringAndSize(s, buflen); -} - -/* Test PyBytes_AsStringAndSize() */ -static PyObject * -bytes_asstringandsize(PyObject *Py_UNUSED(module), PyObject *args) -{ - PyObject *obj; - Py_ssize_t buflen; - char *s = UNINITIALIZED_PTR; - Py_ssize_t size = UNINITIALIZED_SIZE; - - if (!PyArg_ParseTuple(args, "On", &obj, &buflen)) - return NULL; - - NULLABLE(obj); - if (PyBytes_AsStringAndSize(obj, &s, &size) < 0) { - return NULL; - } - - if (s == NULL) { - return Py_BuildValue("(On)", Py_None, size); - } - else { - return Py_BuildValue("(y#n)", s, buflen, size); - } -} - -static PyObject * -bytes_asstringandsize_null(PyObject *Py_UNUSED(module), PyObject *args) -{ - PyObject *obj; - Py_ssize_t buflen; - char *s = UNINITIALIZED_PTR; - - if (!PyArg_ParseTuple(args, "On", &obj, &buflen)) - return NULL; - - NULLABLE(obj); - if (PyBytes_AsStringAndSize(obj, &s, NULL) < 0) { - return NULL; - } - - if (s == NULL) { - Py_RETURN_NONE; - } - else { - return PyBytes_FromStringAndSize(s, buflen); - } -} - -/* Test PyBytes_Repr() */ -static PyObject * -bytes_repr(PyObject *Py_UNUSED(module), PyObject *args) -{ - PyObject *obj; - int smartquotes; - if (!PyArg_ParseTuple(args, "Oi", &obj, &smartquotes)) - return NULL; - - NULLABLE(obj); - return PyBytes_Repr(obj, smartquotes); -} - -/* Test PyBytes_Concat() */ -static PyObject * -bytes_concat(PyObject *Py_UNUSED(module), PyObject *args) -{ - PyObject *left, *right; - int new = 0; - - if (!PyArg_ParseTuple(args, "OO|p", &left, &right, &new)) - return NULL; - - NULLABLE(left); - NULLABLE(right); - if (new) { - assert(left != NULL); - assert(PyBytes_CheckExact(left)); - left = PyBytes_FromStringAndSize(PyBytes_AS_STRING(left), - PyBytes_GET_SIZE(left)); - if (left == NULL) { - return NULL; - } - } - else { - Py_XINCREF(left); - } - PyBytes_Concat(&left, right); - if (left == NULL && !PyErr_Occurred()) { - Py_RETURN_NONE; - } - return left; -} - -/* Test PyBytes_ConcatAndDel() */ -static PyObject * -bytes_concatanddel(PyObject *Py_UNUSED(module), PyObject *args) -{ - PyObject *left, *right; - int new = 0; - - if (!PyArg_ParseTuple(args, "OO|p", &left, &right, &new)) - return NULL; - - NULLABLE(left); - NULLABLE(right); - if (new) { - assert(left != NULL); - assert(PyBytes_CheckExact(left)); - left = PyBytes_FromStringAndSize(PyBytes_AS_STRING(left), - PyBytes_GET_SIZE(left)); - if (left == NULL) { - return NULL; - } - } - else { - Py_XINCREF(left); - } - Py_XINCREF(right); - PyBytes_ConcatAndDel(&left, right); - if (left == NULL && !PyErr_Occurred()) { - Py_RETURN_NONE; - } - return left; -} - -/* Test PyBytes_DecodeEscape() */ -static PyObject * -bytes_decodeescape(PyObject *Py_UNUSED(module), PyObject *args) -{ - const char *s; - Py_ssize_t bsize; - Py_ssize_t size = -100; - const char *errors = NULL; - - if (!PyArg_ParseTuple(args, "z#|zn", &s, &bsize, &errors, &size)) - return NULL; - - if (size == -100) { - size = bsize; - } - return PyBytes_DecodeEscape(s, size, errors, 0, NULL); -} - - -static PyMethodDef test_methods[] = { - {"bytes_check", bytes_check, METH_O}, - {"bytes_checkexact", bytes_checkexact, METH_O}, - {"bytes_fromstringandsize", bytes_fromstringandsize, METH_VARARGS}, - {"bytes_fromstring", bytes_fromstring, METH_O}, - {"bytes_fromobject", bytes_fromobject, METH_O}, - {"bytes_size", bytes_size, METH_O}, - {"bytes_asstring", bytes_asstring, METH_VARARGS}, - {"bytes_asstringandsize", bytes_asstringandsize, METH_VARARGS}, - {"bytes_asstringandsize_null", bytes_asstringandsize_null, METH_VARARGS}, - {"bytes_repr", bytes_repr, METH_VARARGS}, - {"bytes_concat", bytes_concat, METH_VARARGS}, - {"bytes_concatanddel", bytes_concatanddel, METH_VARARGS}, - {"bytes_decodeescape", bytes_decodeescape, METH_VARARGS}, - {NULL}, -}; - -int -_PyTestCapi_Init_Bytes(PyObject *m) -{ - if (PyModule_AddFunctions(m, test_methods) < 0) { - return -1; - } - - return 0; -} diff --git a/Modules/_testcapi/parts.h b/Modules/_testcapi/parts.h index 2a043cf..f9bdd83 100644 --- a/Modules/_testcapi/parts.h +++ b/Modules/_testcapi/parts.h @@ -31,8 +31,6 @@ int _PyTestCapi_Init_Vectorcall(PyObject *module); int _PyTestCapi_Init_Heaptype(PyObject *module); int _PyTestCapi_Init_Abstract(PyObject *module); -int _PyTestCapi_Init_ByteArray(PyObject *module); -int _PyTestCapi_Init_Bytes(PyObject *module); int _PyTestCapi_Init_Unicode(PyObject *module); int _PyTestCapi_Init_GetArgs(PyObject *module); int _PyTestCapi_Init_DateTime(PyObject *module); @@ -52,12 +50,10 @@ int _PyTestCapi_Init_Exceptions(PyObject *module); int _PyTestCapi_Init_Code(PyObject *module); int _PyTestCapi_Init_Buffer(PyObject *module); int _PyTestCapi_Init_PyAtomic(PyObject *module); -int _PyTestCapi_Init_PyOS(PyObject *module); int _PyTestCapi_Init_File(PyObject *module); int _PyTestCapi_Init_Codec(PyObject *module); int _PyTestCapi_Init_Immortal(PyObject *module); int _PyTestCapi_Init_GC(PyObject *module); -int _PyTestCapi_Init_Sys(PyObject *module); int _PyTestCapi_Init_Hash(PyObject *module); int _PyTestCapi_Init_Time(PyObject *module); diff --git a/Modules/_testcapi/pyos.c b/Modules/_testcapi/pyos.c deleted file mode 100644 index 63140e9..0000000 --- a/Modules/_testcapi/pyos.c +++ /dev/null @@ -1,60 +0,0 @@ -#include "parts.h" - - -static PyObject * -test_PyOS_mystrnicmp(PyObject *self, PyObject *Py_UNUSED(ignored)) -{ - assert(PyOS_mystrnicmp("", "", 0) == 0); - assert(PyOS_mystrnicmp("", "", 1) == 0); - - assert(PyOS_mystrnicmp("insert", "ins", 3) == 0); - assert(PyOS_mystrnicmp("ins", "insert", 3) == 0); - assert(PyOS_mystrnicmp("insect", "insert", 3) == 0); - - assert(PyOS_mystrnicmp("insert", "insert", 6) == 0); - assert(PyOS_mystrnicmp("Insert", "insert", 6) == 0); - assert(PyOS_mystrnicmp("INSERT", "insert", 6) == 0); - assert(PyOS_mystrnicmp("insert", "insert", 10) == 0); - - assert(PyOS_mystrnicmp("invert", "insert", 6) == ('v' - 's')); - assert(PyOS_mystrnicmp("insert", "invert", 6) == ('s' - 'v')); - assert(PyOS_mystrnicmp("insert", "ins\0rt", 6) == 'e'); - - // GH-21845 - assert(PyOS_mystrnicmp("insert\0a", "insert\0b", 8) == 0); - - Py_RETURN_NONE; -} - -static PyObject * -test_PyOS_mystricmp(PyObject *self, PyObject *Py_UNUSED(ignored)) -{ - assert(PyOS_mystricmp("", "") == 0); - assert(PyOS_mystricmp("insert", "insert") == 0); - assert(PyOS_mystricmp("Insert", "insert") == 0); - assert(PyOS_mystricmp("INSERT", "insert") == 0); - assert(PyOS_mystricmp("insert", "ins") == 'e'); - assert(PyOS_mystricmp("ins", "insert") == -'e'); - - // GH-21845 - assert(PyOS_mystricmp("insert", "ins\0rt") == 'e'); - assert(PyOS_mystricmp("invert", "insert") == ('v' - 's')); - - Py_RETURN_NONE; -} - -static PyMethodDef test_methods[] = { - {"test_PyOS_mystrnicmp", test_PyOS_mystrnicmp, METH_NOARGS, NULL}, - {"test_PyOS_mystricmp", test_PyOS_mystricmp, METH_NOARGS, NULL}, - {NULL}, -}; - -int -_PyTestCapi_Init_PyOS(PyObject *mod) -{ - if (PyModule_AddFunctions(mod, test_methods) < 0) { - return -1; - } - - return 0; -} diff --git a/Modules/_testcapi/sys.c b/Modules/_testcapi/sys.c deleted file mode 100644 index aa40e3c..0000000 --- a/Modules/_testcapi/sys.c +++ /dev/null @@ -1,56 +0,0 @@ -#include "parts.h" -#include "util.h" - - -static PyObject * -sys_getobject(PyObject *Py_UNUSED(module), PyObject *arg) -{ - const char *name; - Py_ssize_t size; - if (!PyArg_Parse(arg, "z#", &name, &size)) { - return NULL; - } - PyObject *result = PySys_GetObject(name); - if (result == NULL) { - result = PyExc_AttributeError; - } - return Py_NewRef(result); -} - -static PyObject * -sys_setobject(PyObject *Py_UNUSED(module), PyObject *args) -{ - const char *name; - Py_ssize_t size; - PyObject *value; - if (!PyArg_ParseTuple(args, "z#O", &name, &size, &value)) { - return NULL; - } - NULLABLE(value); - RETURN_INT(PySys_SetObject(name, value)); -} - -static PyObject * -sys_getxoptions(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(ignored)) -{ - PyObject *result = PySys_GetXOptions(); - return Py_XNewRef(result); -} - - -static PyMethodDef test_methods[] = { - {"sys_getobject", sys_getobject, METH_O}, - {"sys_setobject", sys_setobject, METH_VARARGS}, - {"sys_getxoptions", sys_getxoptions, METH_NOARGS}, - {NULL}, -}; - -int -_PyTestCapi_Init_Sys(PyObject *m) -{ - if (PyModule_AddFunctions(m, test_methods) < 0) { - return -1; - } - - return 0; -} |