As noted in the comment, we had a chicken-and-the-egg problem with plugins and the event dispatchers: we need to destroy the event dispatcher when plugins are still loaded (otherwise we could and did crash) but we also wanted the QThreadData to exist when the plugins unload. The solution for that is to split the work: destroy the event dispatcher first, then unload pugins, then destroy the current thread's QThreadData. On ELF systems, this is guaranteed to work because we set the init_priority to call destroy_current_thread_data() to higher than QLibraryStore. In other systems, it's a best effort with dynamic libraries and not guaranteed at all with static builds (don't even report bugs). Fixes: QTBUG-134080 Fixes: QTBUG-133861 Task-number: QTBUG-132697 Task-number: QTBUG-102984 Task-number: QTBUG-132381 Pick-to: 6.9.0 6.8 Change-Id: Ifaa28bb87338f4117d51fffdf721da68c0762e5a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 6763e25cbc16cf8c54ab9b1ef97030aab9bb0eec) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This directory contains autotests and benchmarks based on Qt Test. In order to run the autotests reliably, you need to configure a desktop to match the test environment that these tests are written for. Linux X11: * The user must be logged in to an active desktop; you can't run the autotests without a valid DISPLAY that allows X11 connections. * The tests are run against a KDE3 or KDE4 desktop. * Window manager uses "click to focus", and not "focus follows mouse". Many tests move the mouse cursor around and expect this to not affect focus and activation. * Disable "click to activate", i.e., when a window is opened, the window manager should automatically activate it (give it input focus) and not wait for the user to click the window.