summaryrefslogtreecommitdiffstats
path: root/Objects/setobject.c
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2010-03-13 00:19:17 (GMT)
committerVictor Stinner <victor.stinner@haypocalc.com>2010-03-13 00:19:17 (GMT)
commit08b36bdab44eaf6fb041780f6be967105e8c722c (patch)
tree550abef45d8b5edf9f26b51441928c65a22c1c4d /Objects/setobject.c
parent6540a82a40d3a8da418318b9e8a6d090f35a5a92 (diff)
downloadcpython-08b36bdab44eaf6fb041780f6be967105e8c722c.zip
cpython-08b36bdab44eaf6fb041780f6be967105e8c722c.tar.gz
cpython-08b36bdab44eaf6fb041780f6be967105e8c722c.tar.bz2
Merged revisions 78886 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r78886 | victor.stinner | 2010-03-13 01:13:22 +0100 (sam., 13 mars 2010) | 2 lines Issue #7818: set().test_c_api() doesn't expect a set('abc'), modify the set. ........
Diffstat (limited to 'Objects/setobject.c')
-rw-r--r--Objects/setobject.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/Objects/setobject.c b/Objects/setobject.c
index 7ea8e32..c3eabf5 100644
--- a/Objects/setobject.c
+++ b/Objects/setobject.c
@@ -2360,11 +2360,25 @@ test_c_api(PySetObject *so)
PyObject *elem=NULL, *dup=NULL, *t, *f, *dup2, *x;
PyObject *ob = (PyObject *)so;
long hash;
+ PyObject *str;
- /* Verify preconditions and exercise type/size checks */
+ /* Verify preconditions */
assert(PyAnySet_Check(ob));
assert(PyAnySet_CheckExact(ob));
assert(!PyFrozenSet_CheckExact(ob));
+
+ /* so.clear(); so |= set("abc"); */
+ str = PyUnicode_FromString("abc");
+ if (str == NULL)
+ return NULL;
+ set_clear_internal(so);
+ if (set_update_internal(so, str) == -1) {
+ Py_DECREF(str);
+ return NULL;
+ }
+ Py_DECREF(str);
+
+ /* Exercise type/size checks */
assert(PySet_Size(ob) == 3);
assert(PySet_GET_SIZE(ob) == 3);