15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)# Copyright 2014 The Chromium Authors. All rights reserved.
25d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
35d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)# found in the LICENSE file.
45d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)import unittest
65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
75d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)from memory_inspector.core import stacktrace
85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class StacktraceTest(unittest.TestCase):
115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  def runTest(self):
125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    st = stacktrace.Stacktrace()
135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    frame_1 = stacktrace.Frame(20)
145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    frame_2 = stacktrace.Frame(24)
155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    frame_2.SetExecFileInfo('/foo/bar.so', 0)
165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    self.assertEqual(frame_2.exec_file_name, 'bar.so')
175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    st.Add(frame_1)
185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    st.Add(frame_1)
195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    st.Add(frame_2)
205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    st.Add(frame_1)
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    self.assertEqual(st.depth, 4)
22