summaryrefslogtreecommitdiffstats
path: root/Lib/test/pickletester.py
Commit message (Collapse)AuthorAgeFilesLines
* [3.11] gh-113028: Correctly memoize str in pickle when escapes added ↵Miss Islington (bot)2023-12-241-0/+8
| | | | | | | | | | (GH-113436) (GH-113449) This fixes a divergence between the Python and C implementations of pickle for protocol 0, such that it pickle.py fails to re-use the first pickled representation of strings involving characters that have to be escaped. (cherry picked from commit 08398631a0298dcf785ee7bd0e26c7844823ce59) Co-authored-by: Jeff Allen <ja.py@farowl.co.uk>
* [3.11] gh-82565: Add tests for pickle and unpickle with bad files (GH-16606) ↵Miss Islington (bot)2023-12-011-0/+78
| | | | | | | (GH-112592) (cherry picked from commit 058444308abee79bb1b3358883adfa8c97bd043a) Co-authored-by: Zackery Spytz <zspytz@gmail.com>
* [3.11] gh-108416: Mark slow test methods with @requires_resource('cpu') ↵Serhiy Storchaka2023-09-031-0/+1
| | | | | | | (GH-108421) (GH-108799) Only mark tests which spend significant system or user time, by itself or in subprocesses. (cherry picked from commit f3ba0a74cd50274acdcd592d4ce8395b92492b7c)
* gh-100129: Add tests for pickling all builtin types and functions (GH-100142)Miss Islington (bot)2022-12-211-0/+29
| | | | | (cherry picked from commit b98d2d31bffcaeb0c4c8848a8d1b35419c70b2da) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* gh-95196: Disable incorrect pickling of the C implemented classmethod ↵Miss Islington (bot)2022-10-051-0/+18
| | | | | | | descriptors (GH-96383) (cherry picked from commit 77f0249308de76401bf4f3c6a057789c92f862d1) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* gh-92930: _pickle.c: Acquire strong references before calling save() (GH-92931)Miss Islington (bot)2022-06-111-0/+61
| | | | | (cherry picked from commit 4c496f1f115a7910d4606b4de233d14874c77bfa) Co-authored-by: Dennis Sweeney <36520290+sweeneyde@users.noreply.github.com>
* bpo-40280: Detect missing threading on WASM platforms (GH-32352)Christian Heimes2022-04-071-0/+1
| | | Co-authored-by: Brett Cannon <brett@python.org>
* bpo-26579: Add object.__getstate__(). (GH-2821)Serhiy Storchaka2022-04-061-1/+3
| | | | | | | Copying and pickling instances of subclasses of builtin types bytearray, set, frozenset, collections.OrderedDict, collections.deque, weakref.WeakSet, and datetime.tzinfo now copies and pickles instance attributes implemented as slots.
* bpo-30570: Fix segfault on buildbots caused by stack overflow from recursion ↵Dennis Sweeney2021-10-281-1/+2
| | | | | | | in tests (GH-29258) * Don't stackoveflow on debug builds * Also catch the pickletester case
* Fix typos in the Lib directory (GH-28775)Christian Clauss2021-10-061-2/+2
| | | | | Fix typos in the Lib directory as identified by codespell. Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
* bpo-45229: Make pickle tests discoverable (GH-28467)Serhiy Storchaka2021-09-201-9/+9
|
* bpo-43907: add missing memoize call in pure python pickling of bytearray ↵Carl Friedrich Bolz-Tereick2021-04-231-0/+8
| | | | (GH-25501)
* bpo-42809: Improve pickle tests for recursive data. (GH-24060)Serhiy Storchaka2021-01-021-87/+253
|
* bpo-41052: Fix pickling heap types implemented in C with protocols 0 and 1 ↵Serhiy Storchaka2020-10-241-0/+18
| | | | (GH-22870)
* bpo-41288: Fix a crash in unpickling invalid NEWOBJ_EX. (GH-21458)Serhiy Storchaka2020-07-131-0/+18
| | | Automerge-Triggered-By: @tiran
* bpo-40275: Use new test.support helper submodules in tests (GH-21314)Hai Shi2020-07-061-5/+8
|
* bpo-41003: Fix test_copyreg when numpy is installed (GH-20935)Victor Stinner2020-06-171-5/+11
| | | | | | | | Fix test_copyreg when numpy is installed: test.pickletester now saves/restores warnings.filters when importing numpy, to ignore filters installed by numpy. Add the save_restore_warnings_filters() function to the test.support.warnings_helper module.
* bpo-40275: Adding threading_helper submodule in test.support (GH-20263)Hai Shi2020-05-271-2/+3
|
* bpo-39681: Fix C pickle regression with minimal file-like objects (#18592)Antoine Pitrou2020-02-231-4/+21
| | | | Fix a regression where the C pickle module wouldn't allow unpickling from a file-like object that doesn't expose a readinto() method.
* bpo-39492: Fix a reference cycle between reducer_override and a Pickler ↵Pierre Glaser2020-02-021-0/+24
| | | | | | | | | | | | instance (GH-18266) This also needs a backport to 3.8 https://bugs.python.org/issue39492 Automerge-Triggered-By: @pitrou
* bpo-38876: Raise pickle.UnpicklingError when loading an item from memo for ↵Claudiu Popa2019-11-241-1/+3
| | | | | | | | | | | | | | | invalid input (GH-17335) The previous code was raising a `KeyError` for both the Python and C implementation. This was caused by the specified index of an invalid input which did not exist in the memo structure, where the pickle stores what objects it has seen. The malformed input would have caused either a `BINGET` or `LONG_BINGET` load from the memo, leading to a `KeyError` as the determined index was bogus. https://bugs.python.org/issue38876 https://bugs.python.org/issue38876
* Don't skip pickle check_frame_opcodes() (GH-15025)Neil Schemenauer2019-07-301-1/+0
| | | | This looks like the only place that proto 4 framing gets exercised so leave it as part of the PGO task.
* bpo-37707: Exclude expensive unit tests from PGO task (GH-15009)Neil Schemenauer2019-07-301-0/+3
| | | | | Mark some individual tests to skip when --pgo is used. The tests marked increase the PGO task time significantly and likely don't help improve optimization of the final executable.
* bpo-37502: handle default parameter for buffers argument of pickle.loads ↵Markus Mohrhard2019-07-251-0/+5
| | | | correctly (GH-14593)
* bpo-31829: Make protocol 0 pickles be loadable in text mode in Python 2. ↵Serhiy Storchaka2019-05-311-4/+15
| | | | | | (GH-11859) Escape ``\r``, ``\0`` and ``\x1a`` (end-of-file on Windows) in Unicode strings.
* bpo-36785: PEP 574 implementation (GH-7076)Antoine Pitrou2019-05-261-12/+411
|
* bpo-35900: Enable custom reduction callback registration in _pickle (GH-12499)Pierre Glaser2019-05-081-0/+68
| | | | Enable custom reduction callback registration for functions and classes in _pickle.c, using the new Pickler's attribute ``reducer_override``.
* bpo-35900: Add a state_setter arg to save_reduce (GH-12588)Pierre Glaser2019-05-081-1/+39
| | | | | Allow reduction methods to return a 6-item tuple where the 6th item specifies a custom state-setting method that's called instead of the regular ``__setstate__`` method.
* bpo-36766: Typos in docs and code comments (GH-13116)penguindustin2019-05-061-1/+1
|
* Clean up code which checked presence of os.{stat,lstat,chmod} (#11643)Anthony Sottile2019-02-251-5/+4
|
* bpo-34572: change _pickle unpickling to use import rather than retrieving ↵tjb9002019-02-181-1/+66
| | | | | from sys.modules (GH-9047) Fix C implementation of pickle.loads to use importlib's locking mechanisms, and thereby avoid using partially-loaded modules.
* bpo-33209: End framing at the end of C implementation of ↵Serhiy Storchaka2018-04-031-17/+18
| | | | pickle.Pickler.dump(). (GH-6363)
* bpo-32503: Avoid creating too small frames in pickles. (#5127)Serhiy Storchaka2018-01-201-37/+45
|
* bpo-31993: Do not use memoryview when pickle large strings. (#5154)Serhiy Storchaka2018-01-121-30/+30
| | | | | | PyMemoryView_FromMemory() created a memoryview referring to the internal data of the string. When the string is destroyed the memoryview become referring to a freed memory.
* bpo-31993: Do not create frames for large bytes and str objects (#5114)Serhiy Storchaka2018-01-111-8/+9
| | | | | | | when serialize into memory buffer with C pickle implementations. This optimization already is performed when serialize into memory with Python pickle implementations or into a file with both implementations.
* bpo-31993: Do not allocate large temporary buffers in pickle dump. (#4353)Olivier Grisel2018-01-061-13/+118
| | | | | | | | | | | | | | | | | The picklers do no longer allocate temporary memory when dumping large bytes and str objects into a file object. Instead the data is directly streamed into the underlying file object. Previously the C implementation would buffer all content and issue a single call to file.write() at the end of the dump. With protocol 4 this behavior has changed to issue one call to file.write() per frame. The Python pickler with protocol 4 now dumps each frame content as a memoryview to an IOBytes instance that is never reused and the memoryview is no longer released after the call to write. This makes it possible for the file object to delay access to the memoryview of previous frames without forcing any additional memory copy as was already possible with the C pickler.
* bpo-32037: Use the INT opcode for 32-bit integers in protocol 0 pickles. (#4407)Serhiy Storchaka2017-11-161-3/+3
|
* bpo-32032: Test both implementations of module-level pickle API. (#4401)Serhiy Storchaka2017-11-151-12/+12
|
* Replace KB unit with KiB (#4293)Victor Stinner2017-11-081-2/+2
| | | | | | | | | | | kB (*kilo* byte) unit means 1000 bytes, whereas KiB ("kibibyte") means 1024 bytes. KB was misused: replace kB or KB with KiB when appropriate. Same change for MB and GB which become MiB and GiB. Change the output of Tools/iobench/iobench.py. Round also the size of the documentation from 5.5 MB to 5 MiB.
* Issue #17711: Fixed unpickling by the persistent ID with protocol 0.Serhiy Storchaka2016-07-171-0/+29
|\ | | | | | | Original patch by Alexandre Vassalotti.
| * Issue #17711: Fixed unpickling by the persistent ID with protocol 0.Serhiy Storchaka2016-07-171-0/+29
| | | | | | | | Original patch by Alexandre Vassalotti.
* | Fixed typo in pickle tests.Serhiy Storchaka2016-03-041-2/+2
|\ \ | |/
| * Fixed typo in pickle tests.Serhiy Storchaka2016-03-041-2/+2
| |
* | Make catched exception more specific and correct a comment.Serhiy Storchaka2015-12-301-3/+3
|\ \ | |/
| * Make catched exception more specific and correct a comment.Serhiy Storchaka2015-12-301-3/+3
| |
* | Issue #25761: Improved detecting errors in broken pickle data.Serhiy Storchaka2015-12-061-11/+6
| |
* | Issue #25761: Added more test cases for testing unpickling broken data.Serhiy Storchaka2015-11-291-93/+197
|\ \ | |/ | | | | Output raised exception at verbose level 2 (-vv).
| * Issue #25761: Added more test cases for testing unpickling broken data.Serhiy Storchaka2015-11-291-93/+197
| |\ | | | | | | | | | Output raised exception at verbose level 2 (-vv).
| | * Issue #25761: Added more test cases for testing unpickling broken data.Serhiy Storchaka2015-11-291-93/+197
| | | | | | | | | | | | Output raised exception at verbose level 2 (-vv).
* | | Issue #23914: Fixed SystemError raised by unpickler on broken pickle data.Serhiy Storchaka2015-11-231-1/+84
|\ \ \ | |/ /