diff options
author | Victor Stinner <vstinner@python.org> | 2023-08-24 17:43:29 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-24 17:43:29 (GMT) |
commit | fa626b8ca019c36418a1ddcefcf9ba1f52946609 (patch) | |
tree | f17a8d46561e208f79aa8e77e3a587608f9ca9a6 /Modules/_testcapimodule.c | |
parent | 480a337366f4a5335c599684609d5f59f27805b9 (diff) | |
download | cpython-fa626b8ca019c36418a1ddcefcf9ba1f52946609.zip cpython-fa626b8ca019c36418a1ddcefcf9ba1f52946609.tar.gz cpython-fa626b8ca019c36418a1ddcefcf9ba1f52946609.tar.bz2 |
gh-107178: Remove _testcapi.test_dict_capi() (#108436)
The new _testcapi.test_dict tests are more complete,
_testcapi.test_dict_capi() became redundant.
Diffstat (limited to 'Modules/_testcapimodule.c')
-rw-r--r-- | Modules/_testcapimodule.c | 191 |
1 files changed, 0 insertions, 191 deletions
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index 7086d32..6a1eba3 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -3319,196 +3319,6 @@ test_weakref_capi(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args)) static PyObject * -test_dict_capi(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args)) -{ - assert(!PyErr_Occurred()); - - PyObject *dict= NULL, *key = NULL, *missing_key = NULL, *value = NULL; - PyObject *invalid_key = NULL; - int res; - - // test PyDict_New() - dict = PyDict_New(); - if (dict == NULL) { - goto error; - } - - key = PyUnicode_FromString("key"); - if (key == NULL) { - goto error; - } - - missing_key = PyUnicode_FromString("missing_key"); - if (missing_key == NULL) { - goto error; - } - - value = PyUnicode_FromString("value"); - if (value == NULL) { - goto error; - } - - // test PyDict_SetItem() - Py_ssize_t key_refcnt = Py_REFCNT(key); - Py_ssize_t value_refcnt = Py_REFCNT(value); - res = PyDict_SetItem(dict, key, value); - if (res < 0) { - goto error; - } - assert(res == 0); - assert(Py_REFCNT(key) == (key_refcnt + 1)); - assert(Py_REFCNT(value) == (value_refcnt + 1)); - - // test PyDict_SetItemString() - res = PyDict_SetItemString(dict, "key", value); - if (res < 0) { - goto error; - } - assert(res == 0); - assert(Py_REFCNT(key) == (key_refcnt + 1)); - assert(Py_REFCNT(value) == (value_refcnt + 1)); - - // test PyDict_Size() - assert(PyDict_Size(dict) == 1); - - // test PyDict_Contains(), key is present - assert(PyDict_Contains(dict, key) == 1); - - // test PyDict_GetItem(), key is present - assert(PyDict_GetItem(dict, key) == value); - - // test PyDict_GetItemString(), key is present - assert(PyDict_GetItemString(dict, "key") == value); - - // test PyDict_GetItemWithError(), key is present - assert(PyDict_GetItemWithError(dict, key) == value); - assert(!PyErr_Occurred()); - - // test PyDict_GetItemRef(), key is present - PyObject *get_value = Py_Ellipsis; // marker value - assert(PyDict_GetItemRef(dict, key, &get_value) == 1); - assert(get_value == value); - Py_DECREF(get_value); - - // test PyDict_GetItemStringRef(), key is present - get_value = Py_Ellipsis; // marker value - assert(PyDict_GetItemStringRef(dict, "key", &get_value) == 1); - assert(get_value == value); - Py_DECREF(get_value); - - // test PyDict_Contains(), missing key - assert(PyDict_Contains(dict, missing_key) == 0); - - // test PyDict_GetItem(), missing key - assert(PyDict_GetItem(dict, missing_key) == NULL); - assert(!PyErr_Occurred()); - - // test PyDict_GetItemString(), missing key - assert(PyDict_GetItemString(dict, "missing_key") == NULL); - assert(!PyErr_Occurred()); - - // test PyDict_GetItemWithError(), missing key - assert(PyDict_GetItem(dict, missing_key) == NULL); - assert(!PyErr_Occurred()); - - // test PyDict_GetItemRef(), missing key - get_value = Py_Ellipsis; // marker value - assert(PyDict_GetItemRef(dict, missing_key, &get_value) == 0); - assert(!PyErr_Occurred()); - assert(get_value == NULL); - - // test PyDict_GetItemStringRef(), missing key - get_value = Py_Ellipsis; // marker value - assert(PyDict_GetItemStringRef(dict, "missing_key", &get_value) == 0); - assert(!PyErr_Occurred()); - assert(get_value == NULL); - - // test PyDict_GetItem(), invalid dict - PyObject *invalid_dict = key; // borrowed reference - assert(PyDict_GetItem(invalid_dict, key) == NULL); - assert(!PyErr_Occurred()); - - // test PyDict_GetItemWithError(), invalid dict - assert(PyDict_GetItemWithError(invalid_dict, key) == NULL); - assert(PyErr_ExceptionMatches(PyExc_SystemError)); - PyErr_Clear(); - - // test PyDict_GetItemRef(), invalid dict - get_value = Py_Ellipsis; // marker value - assert(PyDict_GetItemRef(invalid_dict, key, &get_value) == -1); - assert(PyErr_ExceptionMatches(PyExc_SystemError)); - PyErr_Clear(); - assert(get_value == NULL); - - // test PyDict_GetItemStringRef(), invalid dict - get_value = Py_Ellipsis; // marker value - assert(PyDict_GetItemStringRef(invalid_dict, "key", &get_value) == -1); - assert(PyErr_ExceptionMatches(PyExc_SystemError)); - PyErr_Clear(); - assert(get_value == NULL); - - invalid_key = PyList_New(0); - if (invalid_key == NULL) { - goto error; - } - - // test PyDict_Contains(), invalid key - assert(PyDict_Contains(dict, invalid_key) == -1); - assert(PyErr_ExceptionMatches(PyExc_TypeError)); - PyErr_Clear(); - - // test PyDict_GetItem(), invalid key - assert(PyDict_GetItem(dict, invalid_key) == NULL); - assert(!PyErr_Occurred()); - - // test PyDict_GetItemWithError(), invalid key - assert(PyDict_GetItemWithError(dict, invalid_key) == NULL); - assert(PyErr_ExceptionMatches(PyExc_TypeError)); - PyErr_Clear(); - - // test PyDict_GetItemRef(), invalid key - get_value = Py_Ellipsis; // marker value - assert(PyDict_GetItemRef(dict, invalid_key, &get_value) == -1); - assert(PyErr_ExceptionMatches(PyExc_TypeError)); - PyErr_Clear(); - assert(get_value == NULL); - - // test PyDict_DelItem(), key is present - assert(PyDict_DelItem(dict, key) == 0); - assert(PyDict_Size(dict) == 0); - - // test PyDict_DelItem(), missing key - assert(PyDict_DelItem(dict, missing_key) == -1); - assert(PyErr_ExceptionMatches(PyExc_KeyError)); - PyErr_Clear(); - - // test PyDict_DelItem(), invalid key - assert(PyDict_DelItem(dict, invalid_key) == -1); - assert(PyErr_ExceptionMatches(PyExc_TypeError)); - PyErr_Clear(); - - // test PyDict_Clear() - PyDict_Clear(dict); - - Py_DECREF(dict); - Py_DECREF(key); - Py_DECREF(missing_key); - Py_DECREF(value); - Py_DECREF(invalid_key); - - Py_RETURN_NONE; - -error: - Py_XDECREF(dict); - Py_XDECREF(key); - Py_XDECREF(missing_key); - Py_XDECREF(value); - Py_XDECREF(invalid_key); - return NULL; -} - - -static PyObject * sys_getobject(PyObject *Py_UNUSED(module), PyObject *arg) { const char *name; @@ -3670,7 +3480,6 @@ static PyMethodDef TestMethods[] = { {"function_set_kw_defaults", function_set_kw_defaults, METH_VARARGS, NULL}, {"check_pyimport_addmodule", check_pyimport_addmodule, METH_VARARGS}, {"test_weakref_capi", test_weakref_capi, METH_NOARGS}, - {"test_dict_capi", test_dict_capi, METH_NOARGS}, {"sys_getobject", sys_getobject, METH_O}, {"sys_setobject", sys_setobject, METH_VARARGS}, {NULL, NULL} /* sentinel */ |