This commit adds one unusual creation and three more unusual exits: * creation of the Q*Application in a thread (QTBUG-130895) * exits using ::exit() instead of returning from main(): * from the main thread's event loop * from an auxiliary thread * from inside an auxiliary thread's event loop All of these exercise the moment the QAdoptedThread & QThreadData for the main thread is destroyed, which are, respectively: * thread exit time, running thread-specific destructors * inside exit(), running atexit()-like callbacks (qthread_*.cpp) * [tst_static_q*application] inside exit(), running static destructors (added in commit 1da7558bfd7626bcc40a214a90ae5027f32f6c7f) Unlike the tst_static_q*application tests, the calls to ::exit() cannot be a regular QtTest because that would cause the log output to be incomplete. The threaded Q*Application could be a test of its own, but since I needed to add the helper anyway, I chose to add the test there. For the majority of the tests, the failure mode is going to be a crash on exit. Task-number: QTBUG-12673 Task-number: QTBUG-132429 Change-Id: I1062ef500356bd97dd0cfffda4aeeda9afa138e8 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit bfbd1a281dd00c47df315c06e895bf5d53cd8764) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit ea6d467c050c9e4ab58f970f6720b428ec43c8e2) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> |
||
|---|---|---|
| .. | ||
| auto | ||
| baseline | ||
| benchmarks | ||
| global | ||
| libfuzzer | ||
| manual | ||
| shared | ||
| testserver | ||
| CMakeLists.txt | ||
| README | ||
README
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.