diff options
author | Florian Bruhin <git@the-compiler.org> | 2015-02-19 22:45:37 +0100 |
---|---|---|
committer | Florian Bruhin <git@the-compiler.org> | 2015-03-18 22:22:49 +0100 |
commit | 7dbdc1b3839080cc2679f18c75e6bf912d0662e7 (patch) | |
tree | 7d76746cab04762c4719871ab8dbfceb20778e8d | |
parent | 51276c6cea917afc2b2c1b57250a2ec23ae44374 (diff) | |
download | qutebrowser-7dbdc1b3839080cc2679f18c75e6bf912d0662e7.tar.gz qutebrowser-7dbdc1b3839080cc2679f18c75e6bf912d0662e7.zip |
Fix wrong parsing of faulthandler logs.
-rw-r--r-- | qutebrowser/misc/crashdialog.py | 2 | ||||
-rw-r--r-- | qutebrowser/test/misc/test_crashdialog.py | 16 |
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) |