diff options
author | Victor Stinner <vstinner@python.org> | 2024-12-13 13:23:20 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-13 13:23:20 (GMT) |
commit | d05a4e6a0d366b854a3103cae0c941811fd48c4c (patch) | |
tree | cddad0a0673df66f39b2283889d0705c99117120 /Lib/test/test_cppext/extension.cpp | |
parent | 6ff38fc4e2af8e795dc791be6ea596d2146d4119 (diff) | |
download | cpython-d05a4e6a0d366b854a3103cae0c941811fd48c4c.zip cpython-d05a4e6a0d366b854a3103cae0c941811fd48c4c.tar.gz cpython-d05a4e6a0d366b854a3103cae0c941811fd48c4c.tar.bz2 |
gh-127906: Test the limited C API in test_cppext (#127916)
Diffstat (limited to 'Lib/test/test_cppext/extension.cpp')
-rw-r--r-- | Lib/test/test_cppext/extension.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Lib/test/test_cppext/extension.cpp b/Lib/test/test_cppext/extension.cpp index ab485b6..500d591 100644 --- a/Lib/test/test_cppext/extension.cpp +++ b/Lib/test/test_cppext/extension.cpp @@ -62,6 +62,7 @@ test_api_casts(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args)) Py_ssize_t refcnt = Py_REFCNT(obj); assert(refcnt >= 1); +#ifndef Py_LIMITED_API // gh-92138: For backward compatibility, functions of Python C API accepts // "const PyObject*". Check that using it does not emit C++ compiler // warnings. @@ -74,6 +75,7 @@ test_api_casts(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args)) assert(PyTuple_GET_SIZE(const_obj) == 2); PyObject *one = PyTuple_GET_ITEM(const_obj, 0); assert(PyLong_AsLong(one) == 1); +#endif // gh-92898: StrongRef doesn't inherit from PyObject but has an operator to // cast to PyObject*. @@ -106,6 +108,12 @@ test_unicode(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args)) } assert(PyUnicode_Check(str)); + + assert(PyUnicode_GetLength(str) == 3); + assert(PyUnicode_ReadChar(str, 0) == 'a'); + assert(PyUnicode_ReadChar(str, 1) == 'b'); + +#ifndef Py_LIMITED_API assert(PyUnicode_GET_LENGTH(str) == 3); // gh-92800: test PyUnicode_READ() @@ -121,6 +129,7 @@ test_unicode(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args)) assert(PyUnicode_READ(ukind, const_data, 2) == 'c'); assert(PyUnicode_READ_CHAR(str, 1) == 'b'); +#endif Py_DECREF(str); Py_RETURN_NONE; |