def test_hashable_backtrace(self): gdbf = GDBfile(self.file) self.assertFalse(gdbf._hashable_backtrace()) gdbf.lines.append('#0 0x11111111 in ??') gdbf.lines.append('#1 0x22222222 in foo at foo.c:80') gdbf.lines.append('#2 0x33333333 in bar') gdbf._process_lines() self.assertEqual(gdbf._hashable_backtrace(), ['0x11111111', 'foo.c:80', '0x33333333'])
def test_get_crash_signature(self): gdbf = GDBfile(self.file) self.assertFalse(gdbf._hashable_backtrace()) gdbf.lines.append('#0 0x11111111 in ??') gdbf.lines.append('#1 0x22222222 in foo at foo.c:80') gdbf.lines.append('#2 0x33333333 in bar') gdbf._process_lines() gdbf._hashable_backtrace() self.assertEqual(gdbf.get_crash_signature(1), hashlib.md5('0x11111111').hexdigest()) self.assertEqual(gdbf.get_crash_signature(2), hashlib.md5('0x11111111 foo.c:80').hexdigest()) self.assertEqual(gdbf.get_crash_signature(3), hashlib.md5('0x11111111 foo.c:80 0x33333333').hexdigest())