From: Barry Warsaw Date: Mon, 11 Jan 2016 19:44:59 +0000 (-0500) Subject: Comment out two tests that won't pass now after reverting the typeobject.c X-Git-Tag: v2.7.12rc1~300 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=607965eb7e11b9405e23175d1f8aee3647425a80;p=thirdparty%2FPython%2Fcpython.git Comment out two tests that won't pass now after reverting the typeobject.c change. Also, as per further discussion, we'll just remove the regressing code in typeobject.c --- diff --git a/Lib/test/test_buffer.py b/Lib/test/test_buffer.py index ccfd1e91509a..de80d4469d73 100644 --- a/Lib/test/test_buffer.py +++ b/Lib/test/test_buffer.py @@ -42,11 +42,12 @@ class BufferTests(unittest.TestCase): with self.assertRaises(TypeError): copy.copy(buf) - def test_pickle(self): - buf = buffer(b'abc') - for proto in range(pickle.HIGHEST_PROTOCOL + 1): - with self.assertRaises(TypeError): - pickle.dumps(buf, proto) + # See issue #22995 + ## def test_pickle(self): + ## buf = buffer(b'abc') + ## for proto in range(pickle.HIGHEST_PROTOCOL + 1): + ## with self.assertRaises(TypeError): + ## pickle.dumps(buf, proto) def test_main(): diff --git a/Lib/test/test_memoryview.py b/Lib/test/test_memoryview.py index bc83247af820..4407af826429 100644 --- a/Lib/test/test_memoryview.py +++ b/Lib/test/test_memoryview.py @@ -362,11 +362,12 @@ class OtherTest(unittest.TestCase): with self.assertRaises(TypeError): copy.copy(m) - def test_pickle(self): - m = memoryview(b'abc') - for proto in range(pickle.HIGHEST_PROTOCOL + 1): - with self.assertRaises(TypeError): - pickle.dumps(m, proto) + # See issue #22995 + ## def test_pickle(self): + ## m = memoryview(b'abc') + ## for proto in range(pickle.HIGHEST_PROTOCOL + 1): + ## with self.assertRaises(TypeError): + ## pickle.dumps(m, proto) def test_main(): diff --git a/Misc/NEWS b/Misc/NEWS index bda940f38105..f74c18473189 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,7 +10,7 @@ What's New in Python 2.7.12? Core and Builtins ----------------- -- Issue #22995: [UPDATE] Comment out the one of the pickleability tests in +- Issue #22995: [UPDATE] Remove the one of the pickleability tests in _PyObject_GetState() due to regressions observed in Cython-based projects. - Issue #25961: Disallowed null characters in the type name. diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 1ddcc59d12c4..8a5623f879b4 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -3279,30 +3279,6 @@ reduce_2(PyObject *obj) if (names == NULL) goto end; assert(names == Py_None || PyList_Check(names)); -#if 0 - /* 2016-01-11 barry - This clause breaks at least three packages which - rely on Cython: kivy, pysam, and s3ql. Cython may be doing - something funny under the hood, but as this is clearly a regression - and the rationale for this prohibition is suspect, I am commenting - this out. Perhaps it should just be removed. See issue #22995 for - details. - */ - if (required_state) { - Py_ssize_t basicsize = PyBaseObject_Type.tp_basicsize; - if (obj->ob_type->tp_dictoffset) - basicsize += sizeof(PyObject *); - if (obj->ob_type->tp_weaklistoffset) - basicsize += sizeof(PyObject *); - if (names != Py_None) - basicsize += sizeof(PyObject *) * Py_SIZE(names); - if (obj->ob_type->tp_basicsize > basicsize) { - PyErr_Format(PyExc_TypeError, - "can't pickle %.200s objects", - Py_TYPE(obj)->tp_name); - goto end; - } - } -#endif if (names != Py_None) { slots = PyDict_New();