summaryrefslogtreecommitdiffstats
path: root/test_backtrace_parser.py
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2011-02-15 18:12:07 -0500
committerDavid Malcolm <dmalcolm@redhat.com>2011-02-15 18:12:07 -0500
commit4f5566f9393ed9a3fdbe317b326ccdb724a183d2 (patch)
treefe3314bc643eca4a23a3d4b4593e2e5bef6b91a0 /test_backtrace_parser.py
parenta8ab774aec55fc200859a1c3b9202080093d1d30 (diff)
downloadtriage-4f5566f9393ed9a3fdbe317b326ccdb724a183d2.tar.gz
triage-4f5566f9393ed9a3fdbe317b326ccdb724a183d2.tar.xz
triage-4f5566f9393ed9a3fdbe317b326ccdb724a183d2.zip
Fix a bug in backtrace parsing; add extractor for python-level backtraces
Diffstat (limited to 'test_backtrace_parser.py')
-rw-r--r--test_backtrace_parser.py30
1 files changed, 26 insertions, 4 deletions
diff --git a/test_backtrace_parser.py b/test_backtrace_parser.py
index e2d831f..713eadb 100644
--- a/test_backtrace_parser.py
+++ b/test_backtrace_parser.py
@@ -3,14 +3,16 @@ from backtrace import Backtrace
class TestParser(unittest.TestCase):
def test_bz677051(self):
- text = open('data/rhbz-677051-attachment-478410.txt', 'r').read()
- bt = Backtrace(text)
+ bt = Backtrace.from_text_file('data/rhbz-677051-attachment-478410.txt')
thread, frame = bt.get_crash_site()
self.assertEquals(thread.index, 1)
self.assertEquals(thread.extra, '0xb78516c0 (LWP 17355)')
- #self.assertEquals(len(thread.frames), 59)
- #self.assertEquals(len(thread.framelist), 59)
+ self.assertEquals(len(thread.frames), 60)
+ self.assertEquals(len(thread.framelist), 60)
+
+ # Frame #13 wasn't handled by an earlier version of the parser:
+ self.assert_(13 in thread.frames)
self.assertEquals(frame.index, 0)
self.assertEquals(frame.address, 0x4d2ade0a)
@@ -24,6 +26,26 @@ class TestParser(unittest.TestCase):
" base = <optimized out>\n"
" dict = <optimized out>\n"
" h = <optimized out>")
+
+
+
+ def test_python_backtrace(self):
+ bt = Backtrace.from_text_file('data/rhbz-677051-attachment-478410.txt')
+
+ pybt = bt.as_python_backtrace(False)
+
+ self.assertEquals(pybt,
+ '#4 /usr/lib/python2.7/site-packages/yum/sqlitesack.py:1362 searchPrco\n'
+ '#9 /usr/lib/python2.7/site-packages/yum/sqlitesack.py:46 newFunc\n'
+ '#13 /usr/lib/python2.7/site-packages/yum/sqlitesack.py:1400 searchProvides\n'
+ '#23 /usr/lib/python2.7/site-packages/yum/packageSack.py:598 _computeAggregateListResult\n'
+ '#27 /usr/lib/python2.7/site-packages/yum/packageSack.py:426 searchProvides\n'
+ '#30 /usr/lib/python2.7/site-packages/yum/__init__.py:2990 returnPackagesByDep\n'
+ '#33 /usr/lib/python2.7/site-packages/yum/__init__.py:3313 install\n'
+ '#37 /usr/sbin/yum-complete-transaction:199 main\n'
+ '#40 /usr/sbin/yum-complete-transaction:118 __init__\n'
+ '#51 /usr/sbin/yum-complete-transaction:256 <module>\n')
+
if __name__ == '__main__':
unittest.main()