mirror of
https://github.com/python/cpython.git
synced 2024-11-24 10:24:35 +08:00
Merged revisions 88546 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r88546 | alexander.belopolsky | 2011-02-24 14:40:09 -0500 (Thu, 24 Feb 2011) | 3 lines Issue #11286: Fixed unpickling of empty 2.x strings. ........
This commit is contained in:
parent
f4977d2f50
commit
ec8f0df229
@ -1093,6 +1093,10 @@ class AbstractPickleTests(unittest.TestCase):
|
||||
self.assertEqual(len(loaded), len(data))
|
||||
self.assertEqual(loaded, data)
|
||||
|
||||
def test_empty_bytestring(self):
|
||||
# issue 11286
|
||||
empty = self.loads(b'\x80\x03U\x00q\x00.', encoding='koi8-r')
|
||||
self.assertEqual(empty, '')
|
||||
|
||||
# Test classes for reduce_ex
|
||||
|
||||
|
@ -31,9 +31,9 @@ class PyPicklerTests(AbstractPickleTests):
|
||||
f.seek(0)
|
||||
return bytes(f.read())
|
||||
|
||||
def loads(self, buf):
|
||||
def loads(self, buf, **kwds):
|
||||
f = io.BytesIO(buf)
|
||||
u = self.unpickler(f)
|
||||
u = self.unpickler(f, **kwds)
|
||||
return u.load()
|
||||
|
||||
|
||||
@ -45,8 +45,8 @@ class InMemoryPickleTests(AbstractPickleTests):
|
||||
def dumps(self, arg, proto=None):
|
||||
return pickle.dumps(arg, proto)
|
||||
|
||||
def loads(self, buf):
|
||||
return pickle.loads(buf)
|
||||
def loads(self, buf, **kwds):
|
||||
return pickle.loads(buf, **kwds)
|
||||
|
||||
|
||||
class PyPersPicklerTests(AbstractPersistentPicklerTests):
|
||||
@ -64,12 +64,12 @@ class PyPersPicklerTests(AbstractPersistentPicklerTests):
|
||||
f.seek(0)
|
||||
return f.read()
|
||||
|
||||
def loads(self, buf):
|
||||
def loads(self, buf, **kwds):
|
||||
class PersUnpickler(self.unpickler):
|
||||
def persistent_load(subself, obj):
|
||||
return self.persistent_load(obj)
|
||||
f = io.BytesIO(buf)
|
||||
u = PersUnpickler(f)
|
||||
u = PersUnpickler(f, **kwds)
|
||||
return u.load()
|
||||
|
||||
|
||||
|
@ -9,8 +9,8 @@ class OptimizedPickleTests(AbstractPickleTests, AbstractPickleModuleTests):
|
||||
def dumps(self, arg, proto=None):
|
||||
return pickletools.optimize(pickle.dumps(arg, proto))
|
||||
|
||||
def loads(self, buf):
|
||||
return pickle.loads(buf)
|
||||
def loads(self, buf, **kwds):
|
||||
return pickle.loads(buf, **kwds)
|
||||
|
||||
# Test relies on precise output of dumps()
|
||||
test_pickle_to_2x = None
|
||||
|
@ -977,11 +977,6 @@ _Unpickler_Read(UnpicklerObject *self, char **s, Py_ssize_t n)
|
||||
{
|
||||
Py_ssize_t num_read;
|
||||
|
||||
if (n == 0) {
|
||||
*s = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (self->next_read_idx + n <= self->input_len) {
|
||||
*s = self->input_buffer + self->next_read_idx;
|
||||
self->next_read_idx += n;
|
||||
|
Loading…
Reference in New Issue
Block a user