summaryrefslogtreecommitdiffstats
path: root/Modules/_testcapimodule.c
diff options
context:
space:
mode:
authorKen Jin <28750310+Fidget-Spinner@users.noreply.github.com>2021-05-04 11:07:31 (GMT)
committerGitHub <noreply@github.com>2021-05-04 11:07:31 (GMT)
commit2f5baa17504feb9a7613bac32fdceed4894434de (patch)
treedf144a241003fd3bd7636b3f2515cf9c56dd657e /Modules/_testcapimodule.c
parentb11557973476963f7c0fd0041eac175bc0d4c514 (diff)
downloadcpython-2f5baa17504feb9a7613bac32fdceed4894434de.zip
cpython-2f5baa17504feb9a7613bac32fdceed4894434de.tar.gz
cpython-2f5baa17504feb9a7613bac32fdceed4894434de.tar.bz2
Add C-API tests (#25886)
Diffstat (limited to 'Modules/_testcapimodule.c')
-rw-r--r--Modules/_testcapimodule.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c
index 26ebacb..0a3040f 100644
--- a/Modules/_testcapimodule.c
+++ b/Modules/_testcapimodule.c
@@ -3861,6 +3861,25 @@ test_structseq_newtype_doesnt_leak(PyObject *Py_UNUSED(self),
}
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 *
test_incref_decref_API(PyObject *ob, PyObject *Py_UNUSED(ignored))
{
PyObject *obj = PyLong_FromLong(0);
@@ -5618,6 +5637,8 @@ static PyMethodDef TestMethods[] = {
{"test_decref_doesnt_leak", test_decref_doesnt_leak, METH_NOARGS},
{"test_structseq_newtype_doesnt_leak",
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_long_and_overflow", test_long_and_overflow, METH_NOARGS},
{"test_long_as_double", test_long_as_double, METH_NOARGS},