qt6-bb10/tests
Timur Pocheptsov 44ceb56455 QFuture - add ability to move results from QFuture
QFuture's original design pre-dates C++11 and its
introduction of move semantics. QFuture is documented
as requiring copy-constructible classes and uses copy
operations for results (which in Qt's universe in general
is relatively cheap, due to the use of COW/data sharing).
QFuture::result(), QFuture::results(), QFuture::resultAt()
return copies. Now that the year is 2020, it makes some
sense to add support for move semantics and, in particular,
move-only types, like std::unique_ptr (that cannot be
obtained from QFuture using result etc.). Taking a result
or results from a QFuture renders it invalid.  This patch
adds QFuture<T>::takeResults(), takeResult() and isValid().
'Taking' functions are 'enabled_if' for non-void types only
to improve the compiler's diagnostic (which would otherwise
spit some semi-articulate diagnostic).
As a bonus a bug was found in the pre-existing code (after
initially copy and pasted into the new function) - the one
where we incorrectly report ready results in (rather obscure)
filter mode.

Fixes: QTBUG-81941
Fixes: QTBUG-83182
Change-Id: I8ccdfc50aa310a3a79eef2cdc55f5ea210f889c3
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-03-31 15:28:23 +02:00
..
auto QFuture - add ability to move results from QFuture 2020-03-31 15:28:23 +02:00
baselineserver Merge remote-tracking branch 'origin/5.15' into dev 2020-02-28 09:48:30 +01:00
benchmarks Remove the old harfbuzz library and integration code 2020-03-17 01:43:29 +01:00
global
libfuzzer Fuzzing: Add fuzz target for ctor of QSslCertificate 2020-03-13 14:51:02 +01:00
manual Remove QGuiAction again and split QAction implementation up instead 2020-03-29 11:18:57 +01:00
shared Fix isRunningArmOnX86 unused function warning 2020-02-03 15:03:51 +01:00
testserver docker-compose now brings up the docker images tagged as "latest" 2019-12-05 15:40:00 +01:00
.prev_CMakeLists.txt Make standalone tests build via top level repo project 2019-11-08 15:42:32 +00:00
CMakeLists.txt Make standalone tests build via top level repo project 2019-11-08 15:42:32 +00:00
README
tests.pro Build examples and tests only if their requirements are met 2017-03-22 15:55:55 +00:00

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.