mirror of
https://github.com/python/cpython.git
synced 2025-12-10 11:00:14 +00:00
Add C-API tests (#25886)
This commit is contained in:
parent
b115579734
commit
2f5baa1750
2 changed files with 23 additions and 0 deletions
|
|
@ -0,0 +1,2 @@
|
||||||
|
Add test to check that ``PyStructSequence_NewType`` accepts a
|
||||||
|
``PyStructSequence_Desc`` with ``doc`` field set to ``NULL``.
|
||||||
|
|
@ -3860,6 +3860,25 @@ test_structseq_newtype_doesnt_leak(PyObject *Py_UNUSED(self),
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
test_structseq_newtype_null_descr_doc(PyObject *Py_UNUSED(self),
|
||||||
|
PyObject *Py_UNUSED(args))
|
||||||
|
{
|
||||||
|
PyStructSequence_Field descr_fields[1] = {
|
||||||
|
(PyStructSequence_Field){NULL, NULL}
|
||||||
|
};
|
||||||
|
// Test specifically for NULL .doc field.
|
||||||
|
PyStructSequence_Desc descr = {"_testcapi.test_descr", NULL, &descr_fields[0], 0};
|
||||||
|
|
||||||
|
PyTypeObject* structseq_type = PyStructSequence_NewType(&descr);
|
||||||
|
assert(structseq_type != NULL);
|
||||||
|
assert(PyType_Check(structseq_type));
|
||||||
|
assert(PyType_FastSubclass(structseq_type, Py_TPFLAGS_TUPLE_SUBCLASS));
|
||||||
|
Py_DECREF(structseq_type);
|
||||||
|
|
||||||
|
Py_RETURN_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
test_incref_decref_API(PyObject *ob, PyObject *Py_UNUSED(ignored))
|
test_incref_decref_API(PyObject *ob, PyObject *Py_UNUSED(ignored))
|
||||||
{
|
{
|
||||||
|
|
@ -5618,6 +5637,8 @@ static PyMethodDef TestMethods[] = {
|
||||||
{"test_decref_doesnt_leak", test_decref_doesnt_leak, METH_NOARGS},
|
{"test_decref_doesnt_leak", test_decref_doesnt_leak, METH_NOARGS},
|
||||||
{"test_structseq_newtype_doesnt_leak",
|
{"test_structseq_newtype_doesnt_leak",
|
||||||
test_structseq_newtype_doesnt_leak, METH_NOARGS},
|
test_structseq_newtype_doesnt_leak, METH_NOARGS},
|
||||||
|
{"test_structseq_newtype_null_descr_doc",
|
||||||
|
test_structseq_newtype_null_descr_doc, METH_NOARGS},
|
||||||
{"test_incref_decref_API", test_incref_decref_API, METH_NOARGS},
|
{"test_incref_decref_API", test_incref_decref_API, METH_NOARGS},
|
||||||
{"test_long_and_overflow", test_long_and_overflow, METH_NOARGS},
|
{"test_long_and_overflow", test_long_and_overflow, METH_NOARGS},
|
||||||
{"test_long_as_double", test_long_as_double, METH_NOARGS},
|
{"test_long_as_double", test_long_as_double, METH_NOARGS},
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue