qutebrowser/tests/end2end/features
Florian Bruhin c6b486ce81 Fix segfault with nested download prompts
For an unknown reason, if a download prompt is triple-nested, Qt segfaults here:

    #0  add_lazy_attrs (td=0x7ffff52e0dd1 <QtPrivate::sizedFree(void*, unsigned long)+32>) at sip_core.c:6255
    #1  sip_add_all_lazy_attrs (td=0x7ffff52e0dd1 <QtPrivate::sizedFree(void*, unsigned long)+32>) at sip_core.c:6304
    #2  0x00007ffff636598e in sip_api_is_py_method_12_8 (gil=gil@entry=0x7fffffff8b8c, pymc=pymc@entry=0x7fffffff8b8b "", sipSelfp=sipSelfp@entry=0x7fffffff8ba8, cname=cname@entry=0x0, mname=mname@entry=0x7ffff636d57b "__dtor__") at sip_core.c:7402
    #3  0x00007ffff6365c2c in sip_api_is_py_method_12_8 (mname=0x7ffff636d57b "__dtor__", cname=0x0, sipSelfp=0x7fffffff8ba8, pymc=0x7fffffff8b8b "", gil=0x7fffffff8b8c) at sip_core.c:7356
    #4  callPyDtor (self=<optimized out>) at sip_core.c:5375
    #5  sip_api_instance_destroyed_ex (sipSelfp=0x7fffffff8c40) at sip_core.c:5311
    #6  0x00007ffff5fc9967 in sipQEventLoop::~sipQEventLoop() () from [...]/python3.13/site-packages/PyQt6/QtCore.abi3.so
    #7  0x00007ffff0bcd749 in QFileInfoGatherer::getInfo (this=0x5555583f9bc0, fileInfo=...) at [...]/qt5/qtbase/src/gui/itemmodels/qfileinfogatherer.cpp:349
    #8  0x00007ffff0be2629 in QFileSystemModelPrivate::fileSystemChanged (this=0x5555583f9870, path="/tmp/qbdl/download", updates=QList<std::pair<QString, QFileInfo>> (size = 3) = {...}) at [...]/qt5/qtbase/src/gui/itemmodels/qfilesystemmodel.cpp:1966
    (full stacktrace has 183 frames)

After a lot of experimentation, I figured out that moving the `NullIconProvider`
to a class variable (or removing it entirely) seems to help. Note that making it
`global` (but keeping the instanciation inside `FilenamePrompt._init_fileview()`)
did not!

This is semi-blind fix: It's unclear to me if this is a proper fix, or if the
changed memory layout just causes the issue to temporary disappear.

However, given that `QFileInfoGatherer::getInfo()` calls into the icon provider,
it might very well be the real deal.

Closes #8674
2025-09-21 18:07:34 +02:00
..
backforward.feature tests: Re-add flaky marker 2024-12-09 22:55:44 +01:00
caret.feature Rewrite `.feature` files to use the `"""` syntax 2024-10-15 15:17:45 +02:00
completion.feature pytest-bdd 8: Fix missing multiline step quoting 2024-12-05 16:13:04 +01:00
conftest.py Fix tests with broken asciidoc install 2025-08-25 10:26:25 +02:00
downloads.feature Fix segfault with nested download prompts 2025-09-21 18:07:34 +02:00
editor.feature pytest-bdd 8: Fix indentations 2024-12-05 16:05:59 +01:00
hints.feature pytest-bdd 8: Fix missing multiline step quoting 2024-12-05 16:13:04 +01:00
history.feature pytest-bdd 8: Fix missing multiline step quoting 2024-12-05 16:13:04 +01:00
invoke.feature pytest-bdd 8: Fix missing multiline step quoting 2024-12-05 16:13:04 +01:00
javascript.feature pytest-bdd 8: Fix missing multiline step quoting 2024-12-05 16:13:04 +01:00
keyinput.feature Revert "delay fake-key" and add waits in e2e tests instead 2024-04-27 18:05:44 +12:00
marks.feature pytest-bdd 8: Fix tags 2024-12-05 16:11:17 +01:00
misc.feature Disable DocumentPictureInPicture API 2025-01-09 11:51:45 +01:00
navigate.feature pytest-bdd 8: Fix tags 2024-12-05 16:11:17 +01:00
notifications.feature pytest-bdd 8: Fix comments and remaining syntax issues 2024-12-05 16:19:29 +01:00
open.feature Rewrite `.feature` files to use the `"""` syntax 2024-10-15 15:17:45 +02:00
private.feature pytest-bdd 8: Fix borked tag 2024-12-05 19:15:47 +01:00
prompts.feature tests: Stabilize reloading in tests 2024-12-09 20:48:45 +01:00
qutescheme.feature Qt 6.9: Skip more qutescheme tests 2025-04-11 17:18:51 +02:00
scroll.feature pytest-bdd 8: Fix missing multiline step quoting 2024-12-05 16:13:04 +01:00
search.feature pytest-bdd 8: Fix comments and remaining syntax issues 2024-12-05 16:19:29 +01:00
sessions.feature Rewrite `.feature` files to use the `"""` syntax 2024-10-15 15:17:45 +02:00
spawn.feature py313: Fix root paths in tests on Windows 2024-12-09 23:50:00 +01:00
tabs.feature Merge pull request #8329 from VitoMinheere/7966-tab-move-zero-division-error 2025-03-31 13:39:35 +02:00
test_backforward_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_caret_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_completion_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_downloads_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_editor_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_hints_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_history_bdd.py pytest-bdd 8: Adjust Python code for multiline steps 2024-12-05 16:19:46 +01:00
test_invoke_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_javascript_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_keyinput_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_marks_bdd.py reuse: Update remaining copyright texts 2023-07-23 12:52:01 +02:00
test_misc_bdd.py Rewrite cross-origin navigation test to use scrolling 2023-08-15 19:29:45 +02:00
test_navigate_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_notifications_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_open_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_private_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_prompts_bdd.py tests: Work around Qt 6.10 permission persistence bug 2025-09-16 10:58:47 +02:00
test_qutescheme_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_scroll_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_search_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_sessions_bdd.py pytest-bdd 8: Adjust Python code for multiline steps 2024-12-05 16:19:46 +01:00
test_spawn_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_tabs_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_urlmarks_bdd.py Further stabilize urlmark end2end tests 2023-08-14 18:26:06 +02:00
test_utilcmds_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_yankpaste_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
test_zoom_bdd.py reuse: Initial copyright text update for myself 2023-07-23 12:49:05 +02:00
urlmarks.feature pytest-bdd 8: Fix missing multiline step quoting 2024-12-05 16:13:04 +01:00
utilcmds.feature pytest-bdd 8: Fix indentations 2024-12-05 16:05:59 +01:00
yankpaste.feature pytest-bdd 8: Fix comments and remaining syntax issues 2024-12-05 16:19:29 +01:00
zoom.feature Remove vim modelines 2023-06-30 11:03:06 +02:00