summaryrefslogtreecommitdiffstats
path: root/Lib/test/pickletester.py
Commit message (Collapse)AuthorAgeFilesLines
* use assert[Not]In where appropriateEzio Melotti2010-01-231-4/+4
|
* Issue #7455: Fix possible crash in cPickle on invalid input. Patch byAntoine Pitrou2010-01-071-0/+9
| | | | Florent Xicluna.
* Issue 7128: Removed reference to the non-existent copyreg module.Alexandre Vassalotti2009-11-241-0/+10
| | | | | | | | | The reference to copyreg was a unnoticed leftover from the compatibility support for the grand renaming of the standard library in Python 3. The compatibility support was reverted in r63493, but not completely as this patch shows. Based on a patch by Amaury Forgeot d'Arc.
* #6553: crash in cPickle.load(), when given a StringIO with incomplete data.Amaury Forgeot d'Arc2009-07-231-0/+5
| | | | Will backport to 2.6, 3.x already fixed a similar issue with issue4298.
* convert usage of fail* to assert*Benjamin Peterson2009-06-301-13/+13
|
* Issue 5794: fix cPickle's unpickling of recursive tuples.Collin Winter2009-05-261-0/+10
|
* Isue #5084: unpickling now interns the attribute names of pickled objects,Antoine Pitrou2009-05-021-0/+14
| | | | | saving memory and avoiding growth in size of subsequent pickles. Proposal and original patch by Jake McGuire.
* Issue 5665: add more pickling tests.Collin Winter2009-04-091-12/+182
| | | | | | | | | | | - Add tests for the module-level load() and dump() functions. - Add tests for cPickle's internal data structures, stressing workloads with many gets/puts. - Add tests for the Pickler and Unpickler classes, in particular the memo attribute. - test_xpickle is extended to test backwards compatibility with Python 2.4, 2.5 and 2.6 by round-tripping pickled objects through a worker process. This is guarded with a regrtest -u xpickle resource.
* Issue #1672332: Fix unpickling of subnormal floats, which was raisingMark Dickinson2009-01-241-0/+10
| | | | | ValueError on some platforms as a result of the platform strtod setting errno on underflow.
* Fix bogus unicode tests in pickletester.Alexandre Vassalotti2008-12-271-2/+2
|
* Fix issue #4730: cPickle corrupts high-unicode strings.Alexandre Vassalotti2008-12-271-2/+9
| | | | | Update outdated copy of PyUnicode_EncodeRawUnicodeEscape. Add a test case.
* Issue #4176: Pickle would crash the interpreter when a __reduce__ functionAmaury Forgeot d'Arc2008-10-301-0/+23
| | | | | | | | | does not return an iterator for the 4th and 5th items. (sequence-like and mapping-like state) A list is not an iterator... Will backport to 2.6 and 2.5.
* Revert copy_reg -> copyreg rename.Georg Brandl2008-05-201-9/+9
|
* Added module stub for copy_reg renaming in 3.0.Alexandre Vassalotti2008-05-111-9/+9
| | | | | | Renamed copy_reg to copyreg in the standard library, to avoid spurious warnings and ease later merging to py3k branch. Public documentation remains intact.
* Patch #1462488: prevent a segfault in object_reduce_ex() by splittingŽiga Seilnacht2007-03-151-0/+32
| | | | | the implementation for __reduce__ and __reduce_ex__ into two separate functions. Fixes bug #931877. Will backport.
* Bug #1473625: stop cPickle making float dumps locale dependent in protocol 0.Georg Brandl2006-04-301-1/+7
| | | | | On the way, add a decorator to test_support to facilitate running single test functions in different locales with automatic cleanup.
* Patch #995766: Keyword argument support in cPickle.Martin v. Löwis2004-07-271-0/+10
|
* Deleting cyclic object comparison.Armin Rigo2003-10-281-15/+10
| | | | | SF patch 825639 http://mail.python.org/pipermail/python-dev/2003-October/039445.html
* MyComplex now works.Guido van Rossum2003-03-021-1/+1
|
* test_load_from_canned_string(): Created a DATA2 string to test a cannedTim Peters2003-03-021-2/+66
| | | | proto 2 pickle too.
* Three test cases for __reduce_ex__. This fails for cPickle, until TimGuido van Rossum2003-02-181-0/+52
| | | | checks in his changes to support this in cPickle.c.
* cPickle.c, load_build(): Taught cPickle how to pick apartTim Peters2003-02-151-6/+1
| | | | | | | | | | | | | | | | | | the optional proto 2 slot state. pickle.py, load_build(): CAUTION: Noted that cPickle's load_build and pickle's load_build really don't do the same things with the state, and didn't before this patch either. cPickle never tries to do .update(), and has no backoff if instance.__dict__ can't be retrieved. There are no tests that can tell the difference, and part of what cPickle's load_build() did looked accidental to me, so I don't know what the true intent is here. pickletester.py, test_pickle.py: Got rid of the hack for exempting cPickle from running some of the proto 2 tests. dictobject.c, PyDict_Next(): documented intended use.
* cPickle produces NEWOBJ appropriately now. It still doesn't knowTim Peters2003-02-141-6/+6
| | | | how to unpickle the new slot-full state tuples.
* We didn't have any tests making pickles with one of {pickle, cPickle},Tim Peters2003-02-131-0/+5
| | | | | | | and loading them via the other, except for the special cases of this Guido added to test_datetime.py for datetime module objects. The new test_xpickle.py tries all of pickletester's AbstractPickleTests in both x-module ways.
* Added a simple NEWOBJ test. This is in the pickle-only part of theTim Peters2003-02-131-0/+15
| | | | test for now (cPickle can't yet produce NEWOBJ).
* Added a HIGHEST_PROTOCOL module attribute to pickle and cPickle.Tim Peters2003-02-131-2/+4
|
* Implemented batching for dicts in cPickle. This is after two failedTim Peters2003-02-111-17/+17
| | | | | attempts to merge the C list-batch and dict-batch code -- they worked, but it was a godawful mess to read.
* Implemented list batching in cPickle.Tim Peters2003-02-111-17/+17
|
* Added tests to ensure that list and dict "chunking" are actuallyTim Peters2003-02-111-1/+51
| | | | | | getting done. Since this isn't yet implemented in cPickle, the new tests are in TempAbstractPickleTests (which cPickle doesn't run).
* cPickle: exempt two_tuple from GC -- it's a speed hack, and doesn'tTim Peters2003-02-041-11/+53
| | | | | | | | | | | | guarantee to keep valid pointers in its slots. tests: Moved ExtensionSaver from test_copy_reg into pickletester, and use it both places. Once extension codes get assigned, it won't be safe to overwrite them willy nilly in test suites, and ExtensionSaver does a thorough job of undoing any possible damage. Beefed up the EXT[124] tests a bit, to check the smallest and largest codes in each opcode's range too.
* cPickle now generates proto 2 EXT[124] when appropriate.Tim Peters2003-02-041-18/+18
| | | | | Moved such EXT tests as currently exist from TempAbstractPickleTests to AbstractPickleTests, so that test_cpickle runs them too.
* test_newobj_tuple(), test_newobj_list(): These tests should work underTim Peters2003-02-031-8/+10
| | | | all protocols, so tried them under all.
* test_newobj_generic(): Use the global protocols vector instead of aTim Peters2003-02-031-1/+1
| | | | hardcoded list.
* Added a bit to the EXT[124] tests, and refactored them to squash codeTim Peters2003-02-031-51/+27
| | | | duplication. Note that these still don't get run under cPickle.
* Do a better job of testing that opcodes aren't generated under protocolsTim Peters2003-02-031-18/+32
| | | | earlier than the ones in which they were introduced.
* Proper testing of proto 2 in part requires checking that the new opcodesTim Peters2003-02-031-11/+10
| | | | | | are actually getting generated. Add helpered method ensure_opcode_in_pickle to do a correct job checking for that. Changed test_long1(), test_long4(), and test_short_tuples() to use it.
* cPickle support for TUPLE[123]. Incidentally plugged several undetectedTim Peters2003-02-021-0/+31
| | | | overflow holes in Pdata_grow().
* Implemented proto 2 NEWTRUE and NEWFALSE in cPickle.Tim Peters2003-02-021-0/+6
|
* Beefed up the tests by putting in more "for proto in protocols:" outerTim Peters2003-02-021-86/+231
| | | | | | | loops. Renamed DATA and BINDATA to DATA0 and DATA1. Included disassemblies, but noted why we can't test them. Added XXX comment to cPickle about a mysterious comment, where pickle and cPickle diverge in how they number PUT indices.
* Add cPickle support for PROTO. Duplicated PROTO/LONG1/LONG4 code inTim Peters2003-02-021-2/+23
| | | | | the hitherto unknown (to me) noload() cPickle function, which is (a) something we don't test at all, and (b) pickle.py doesn't have.
* long(string, base) now takes time linear in len(string) when base is aTim Peters2003-02-021-10/+1
| | | | | power of 2. Enabled the tail end of test_long() in pickletester.py because it no longer takes forever when run from test_pickle.py.
* cPickle.c: Full support for the new LONG1 and LONG4. Added comments.Tim Peters2003-02-021-11/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Assorted code cleanups; e.g., sizeof(char) is 1 by definition, so there's no need to do things like multiply by sizeof(char) in hairy malloc arguments. Fixed an undetected-overflow bug in readline_file(). longobject.c: Fixed a really stupid bug in the new _PyLong_NumBits. pickle.py: Fixed stupid bug in save_long(): When proto is 2, it wrote LONG1 or LONG4, but forgot to return then -- it went on to append the proto 1 LONG opcode too. Fixed equally stupid cancelling bugs in load_long1() and load_long4(): they *returned* the unpickled long instead of pushing it on the stack. The return values were ignored. Tests passed before only because save_long() pickled the long twice. Fixed bugs in encode_long(). Noted that decode_long() is quadratic-time despite our hopes, because long(string, 16) is still quadratic-time in len(string). It's hex() that's linear-time. I don't know a way to make decode_long() linear-time in Python, short of maybe transforming the 256's-complement bytes into marshal's funky internal format, and letting marshal decode that. It would be more valuable to make long(string, 16) linear time. pickletester.py: Added a global "protocols" vector so tests can try all the protocols in a sane way. Changed test_ints() and test_unicode() to do so. Added a new test_long(), but the tail end of it is disabled because it "takes forever" under pickle.py (but runs very quickly under cPickle: cPickle proto 2 for longs is linear-time).
* Removed all uses of the out-of-favor __safe_for_unpickling__ magicTim Peters2003-02-011-2/+0
| | | | attr, and copy_reg.safe_constructors.
* Implement appropriate __getnewargs__ for all immutable subclassable builtinGuido van Rossum2003-01-291-2/+44
| | | | | | | | types. The special handling for these can now be removed from save_newobj(). Add some testing for this. Also add support for setting the 'fast' flag on the Python Pickler class, which suppresses use of the memo.
* Test all three EXT opcodes, and move these tests intoGuido van Rossum2003-01-291-0/+61
| | | | TempAbstractPickleTests, because they don't work with cPickle yet.
* Temporary hacks to arrange that the pickle tests relying on protocol 2Tim Peters2003-01-281-0/+6
| | | | | | only get run by test_pickle.py now (& not by test_cpickle.py). This should be undone when protocol 2 is implemented in cPickle too. test_cpickle should pass again.
* Add a test for a list subclass with a __dict__ as well as slots.Guido van Rossum2003-01-281-0/+17
|
* The default __reduce__ on the base object type obscured anyGuido van Rossum2003-01-281-23/+14
| | | | | | possibility of calling save_reduce(). Add a special hack for this. The tests for this are much simpler now (no __getstate__ or __getnewargs__ needed).
* Some experimental support for generating NEWOBJ with proto=2, andGuido van Rossum2003-01-281-0/+39
| | | | fixed a bug in load_newobj().
* OK, this is really the last one tonight!Guido van Rossum2003-01-281-0/+7
| | | | NEWFALSE and NEWTRUE.