From eeb7eea1f95793437b3e251f47c98446e15fa680 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Thu, 6 Oct 2011 18:57:27 +0200 Subject: Issue #12911: Fix memory consumption when calculating the repr() of huge tuples or lists. This introduces a small private API for this common pattern. The issue has been discovered thanks to Martin's huge-mem buildbot. --- Lib/test/test_tuple.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'Lib/test/test_tuple.py') diff --git a/Lib/test/test_tuple.py b/Lib/test/test_tuple.py index 75fbe45ec4..1464a0e50f 100644 --- a/Lib/test/test_tuple.py +++ b/Lib/test/test_tuple.py @@ -154,6 +154,16 @@ class TupleTest(seq_tests.CommonTest): # Trying to untrack an unfinished tuple could crash Python self._not_tracked(tuple(gc.collect() for i in range(101))) + def test_repr_large(self): + # Check the repr of large list objects + def check(n): + l = (0,) * n + s = repr(l) + self.assertEqual(s, + '(' + ', '.join(['0'] * n) + ')') + check(10) # check our checking code + check(1000000) + def test_main(): support.run_unittest(TupleTest) -- cgit v1.2.1