summaryrefslogtreecommitdiff
path: root/Lib/test/test_tracemalloc.py
diff options
context:
space:
mode:
authorJesse-Bakker <jessebakker00@gmail.com>2017-11-30 00:05:07 +0100
committerVictor Stinner <victor.stinner@gmail.com>2017-11-30 00:05:07 +0100
commit706e10b186992e086e661a62d2c8ec9588525b31 (patch)
tree6ef28e2e18a1183757d3a31236c2b5e8b4434254 /Lib/test/test_tracemalloc.py
parent859f7ce7a49f8bd6309748c05e460c10f6a433ed (diff)
downloadcpython-git-706e10b186992e086e661a62d2c8ec9588525b31.tar.gz
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.
Diffstat (limited to 'Lib/test/test_tracemalloc.py')
-rw-r--r--Lib/test/test_tracemalloc.py30
1 files changed, 24 insertions, 6 deletions
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',
+ ' <b.py, 4>',
+ ' File "a.py", line 2',
+ ' <a.py, 2>'])
+
+ self.assertEqual(tb.format(limit=1),
+ [' File "a.py", line 2',
+ ' <a.py, 2>'])
+
+ self.assertEqual(tb.format(limit=-1),
+ [' File "b.py", line 4',
+ ' <b.py, 4>'])
+
+ self.assertEqual(tb.format(most_recent_first=True),
[' File "a.py", line 2',
' <a.py, 2>',
' File "b.py", line 4',
' <b.py, 4>'])
- self.assertEqual(tb.format(limit=1),
+ self.assertEqual(tb.format(limit=1, most_recent_first=True),
[' File "a.py", line 2',
' <a.py, 2>'])
- self.assertEqual(tb.format(limit=-1),
- [])
+ self.assertEqual(tb.format(limit=-1, most_recent_first=True),
+ [' File "b.py", line 4',
+ ' <b.py, 4>'])
class TestFilters(unittest.TestCase):