mirror of https://github.com/python/cpython
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. ........
This commit is contained in:
parent
6540a82a40
commit
08b36bdab4
|
@ -607,7 +607,7 @@ class TestSet(TestJointOps):
|
||||||
# C API test only available in a debug build
|
# C API test only available in a debug build
|
||||||
if hasattr(set, "test_c_api"):
|
if hasattr(set, "test_c_api"):
|
||||||
def test_c_api(self):
|
def test_c_api(self):
|
||||||
self.assertEqual(set('abc').test_c_api(), True)
|
self.assertEqual(set().test_c_api(), True)
|
||||||
|
|
||||||
class SetSubclass(set):
|
class SetSubclass(set):
|
||||||
pass
|
pass
|
||||||
|
|
|
@ -2360,11 +2360,25 @@ test_c_api(PySetObject *so)
|
||||||
PyObject *elem=NULL, *dup=NULL, *t, *f, *dup2, *x;
|
PyObject *elem=NULL, *dup=NULL, *t, *f, *dup2, *x;
|
||||||
PyObject *ob = (PyObject *)so;
|
PyObject *ob = (PyObject *)so;
|
||||||
long hash;
|
long hash;
|
||||||
|
PyObject *str;
|
||||||
|
|
||||||
/* Verify preconditions and exercise type/size checks */
|
/* Verify preconditions */
|
||||||
assert(PyAnySet_Check(ob));
|
assert(PyAnySet_Check(ob));
|
||||||
assert(PyAnySet_CheckExact(ob));
|
assert(PyAnySet_CheckExact(ob));
|
||||||
assert(!PyFrozenSet_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_Size(ob) == 3);
|
||||||
assert(PySet_GET_SIZE(ob) == 3);
|
assert(PySet_GET_SIZE(ob) == 3);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue