summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2015-02-19 22:45:37 +0100
committerFlorian Bruhin <git@the-compiler.org>2015-03-18 22:22:49 +0100
commit7dbdc1b3839080cc2679f18c75e6bf912d0662e7 (patch)
tree7d76746cab04762c4719871ab8dbfceb20778e8d
parent51276c6cea917afc2b2c1b57250a2ec23ae44374 (diff)
downloadqutebrowser-7dbdc1b3839080cc2679f18c75e6bf912d0662e7.tar.gz
qutebrowser-7dbdc1b3839080cc2679f18c75e6bf912d0662e7.zip
Fix wrong parsing of faulthandler logs.
-rw-r--r--qutebrowser/misc/crashdialog.py2
-rw-r--r--qutebrowser/test/misc/test_crashdialog.py16
2 files changed, 16 insertions, 2 deletions
diff --git a/qutebrowser/misc/crashdialog.py b/qutebrowser/misc/crashdialog.py
index f07dcd34c..09c34f709 100644
--- a/qutebrowser/misc/crashdialog.py
+++ b/qutebrowser/misc/crashdialog.py
@@ -60,7 +60,7 @@ def parse_fatal_stacktrace(text):
# We got some invalid text.
return ('', '')
else:
- return (m.group(1), m.group(2))
+ return (m.group(1), m.group(3))
def get_fatal_crash_dialog(debug, data):
diff --git a/qutebrowser/test/misc/test_crashdialog.py b/qutebrowser/test/misc/test_crashdialog.py
index c16dac44d..9b301a5ff 100644
--- a/qutebrowser/test/misc/test_crashdialog.py
+++ b/qutebrowser/test/misc/test_crashdialog.py
@@ -40,6 +40,13 @@ Current thread 0x00007f09b538d700 (most recent call first):
File "filename", line 88 in func
"""
+VALID_CRASH_TEXT_THREAD = """
+Fatal Python error: Segmentation fault
+_
+Thread 0x00007fa135ac7700 (most recent call first):
+ File "", line 1 in testfunc
+"""
+
INVALID_CRASH_TEXT = """
Hello world!
"""
@@ -56,7 +63,14 @@ class ParseFatalStacktraceTests(unittest.TestCase):
self.assertEqual(typ, "Segmentation fault")
self.assertEqual(func, 'testfunc')
- def test_valid_text(self):
+ def test_valid_text_thread(self):
+ """Test parse_fatal_stacktrace with a valid text #2."""
+ text = VALID_CRASH_TEXT_THREAD.strip().replace('_', ' ')
+ typ, func = crashdialog.parse_fatal_stacktrace(text)
+ self.assertEqual(typ, "Segmentation fault")
+ self.assertEqual(func, 'testfunc')
+
+ def test_valid_text_empty(self):
"""Test parse_fatal_stacktrace with a valid text but empty function."""
text = VALID_CRASH_TEXT_EMPTY.strip().replace('_', ' ')
typ, func = crashdialog.parse_fatal_stacktrace(text)