From 706e10b186992e086e661a62d2c8ec9588525b31 Mon Sep 17 00:00:00 2001 From: Jesse-Bakker Date: Thu, 30 Nov 2017 00:05:07 +0100 Subject: bpo-32121: Add most_recent_first parameter to tracemalloc.Traceback.format (#4534) * Add most_recent_first parameter to tracemalloc.Traceback.format to allow reversing the order of the frames in the output * Reversed default sorting of tracemalloc.Traceback frames * Allowed negative limit, truncating from the other side. --- Lib/test/test_tracemalloc.py | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'Lib/test/test_tracemalloc.py') diff --git a/Lib/test/test_tracemalloc.py b/Lib/test/test_tracemalloc.py index 533ba6dc46..b0a0e1b2d7 100644 --- a/Lib/test/test_tracemalloc.py +++ b/Lib/test/test_tracemalloc.py @@ -171,6 +171,9 @@ class TestTracemallocEnabled(unittest.TestCase): traces = tracemalloc._get_traces() + obj1_traceback._frames = tuple(reversed(obj1_traceback._frames)) + obj2_traceback._frames = tuple(reversed(obj2_traceback._frames)) + trace1 = self.find_trace(traces, obj1_traceback) trace2 = self.find_trace(traces, obj2_traceback) domain1, size1, traceback1 = trace1 @@ -537,11 +540,11 @@ class TestSnapshot(unittest.TestCase): def test_trace_format(self): snapshot, snapshot2 = create_snapshots() trace = snapshot.traces[0] - self.assertEqual(str(trace), 'a.py:2: 10 B') + self.assertEqual(str(trace), 'b.py:4: 10 B') traceback = trace.traceback - self.assertEqual(str(traceback), 'a.py:2') + self.assertEqual(str(traceback), 'b.py:4') frame = traceback[0] - self.assertEqual(str(frame), 'a.py:2') + self.assertEqual(str(frame), 'b.py:4') def test_statistic_format(self): snapshot, snapshot2 = create_snapshots() @@ -574,17 +577,32 @@ class TestSnapshot(unittest.TestCase): side_effect=getline): tb = snapshot.traces[0].traceback self.assertEqual(tb.format(), + [' File "b.py", line 4', + ' ', + ' File "a.py", line 2', + ' ']) + + self.assertEqual(tb.format(limit=1), + [' File "a.py", line 2', + ' ']) + + self.assertEqual(tb.format(limit=-1), + [' File "b.py", line 4', + ' ']) + + self.assertEqual(tb.format(most_recent_first=True), [' File "a.py", line 2', ' ', ' File "b.py", line 4', ' ']) - self.assertEqual(tb.format(limit=1), + self.assertEqual(tb.format(limit=1, most_recent_first=True), [' File "a.py", line 2', ' ']) - self.assertEqual(tb.format(limit=-1), - []) + self.assertEqual(tb.format(limit=-1, most_recent_first=True), + [' File "b.py", line 4', + ' ']) class TestFilters(unittest.TestCase): -- cgit v1.2.1