diff options
author | Alexandre Vassalotti <alexandre@peadrop.com> | 2013-12-02 00:27:46 (GMT) |
---|---|---|
committer | Alexandre Vassalotti <alexandre@peadrop.com> | 2013-12-02 00:27:46 (GMT) |
commit | 28d271ef6b0eb37e27b5b3234ba146922b11d89f (patch) | |
tree | 393534e42e54081b2b542398e6d3cdcc368688a5 /Lib | |
parent | 53dd8167ff548233373a75c4884ae5490b91f010 (diff) | |
download | cpython-28d271ef6b0eb37e27b5b3234ba146922b11d89f.zip cpython-28d271ef6b0eb37e27b5b3234ba146922b11d89f.tar.gz cpython-28d271ef6b0eb37e27b5b3234ba146922b11d89f.tar.bz2 |
Issue #19754: Make pickletools.optimize respect the frame size target.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/pickletools.py | 1 | ||||
-rw-r--r-- | Lib/test/pickletester.py | 13 | ||||
-rw-r--r-- | Lib/test/test_pickletools.py | 2 |
3 files changed, 2 insertions, 14 deletions
diff --git a/Lib/pickletools.py b/Lib/pickletools.py index 74b65ce..a1c3f13 100644 --- a/Lib/pickletools.py +++ b/Lib/pickletools.py @@ -2313,6 +2313,7 @@ def optimize(p): buf.start_framing() for start, stop, putid in opcodes: if putid in gets: + #buf.commit_frame() buf.write(p[start:stop]) if proto >= 4: buf.end_framing() diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py index 999eab0..d07bc92 100644 --- a/Lib/test/pickletester.py +++ b/Lib/test/pickletester.py @@ -1343,12 +1343,6 @@ class AbstractPickleTests(unittest.TestCase): pickled = self.dumps(obj, proto) unpickled = self.loads(pickled) self.assertEqual(obj, unpickled) - # Test the framing heuristic is sane, - # assuming a given frame size target. - if self.optimized: - # These assumptions are currently invalid for optimized - # pickles (see e.g. issue19754). - continue bytes_per_frame = (len(pickled) / count_opcode(pickle.FRAME, pickled)) self.assertGreater(bytes_per_frame, @@ -1365,12 +1359,7 @@ class AbstractPickleTests(unittest.TestCase): unpickled = self.loads(pickled) self.assertEqual(obj, unpickled) n_frames = count_opcode(pickle.FRAME, pickled) - if self.optimized: - # At least one frame was emitted (see issue19754). - self.assertGreaterEqual(n_frames, 1) - else: - # At least one frame was emitted per large bytes object. - self.assertGreaterEqual(n_frames, len(obj)) + self.assertGreaterEqual(n_frames, len(obj)) def test_optional_frames(self): if pickle.HIGHEST_PROTOCOL < 4: diff --git a/Lib/test/test_pickletools.py b/Lib/test/test_pickletools.py index 029b5b1..d37ac26 100644 --- a/Lib/test/test_pickletools.py +++ b/Lib/test/test_pickletools.py @@ -6,8 +6,6 @@ from test.pickletester import AbstractPickleModuleTests class OptimizedPickleTests(AbstractPickleTests, AbstractPickleModuleTests): - optimized = True - def dumps(self, arg, proto=None): return pickletools.optimize(pickle.dumps(arg, proto)) |