qt6-bb10/tests/auto/testlib
Thiago Macieira c14f399d2a QTest: rip out qxp::function_ref from reportResult()
This is causing huge code bloat because everything is a local lambda.
Instead, pass direct type-erased function and data pointers to the
replacement function. Testing with tst_qcborvalue, this reduces the
compilation time and the output binary size significantly:

                   Before                   After
Compiler        Time      Size          Time     Size
GCC 13.2        136.99 s  202.3 MB      13.88 s  14.3 MB
GCC 14.0        131.49 s  202.7 MB      14.69 s  14.4 MB
Clang 17        77.2 s    146.7 MB      13.62 s  12.2 MB
Clang 18        141.9 s   187.1 MB      13.62 s  12.4 MB

This causes a difference in how toString() overloads are
found. Previously it would match far more overloads because the
toString() calls were expanded by the macro. Now, we depend on
Argument-Dependent Lookup and associated namespaces, so toString()
overloads should not be in the QTest namespace any more.

With this patch applied, the testlib testcase of tst_selftest
started failing, because nullptr is now handled differently.
However, I consider it as a bugfix, because previously it was
falling back to a default implementation, and now it is using
the QTest::toString(std::nullptr_t) overload, which is a
desired behavior. Update the reference files for tst_selftest
with the new expected output.

Task-number: QTBUG-124272
Change-Id: Ie28eadac333c4bcd8c08fffd17c5484186accdf6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
2024-04-26 18:19:36 +02:00
..
initmain Change license for tests files 2024-02-04 09:56:42 +01:00
outformat Change license for tests files 2024-02-04 09:56:42 +01:00
qabstractitemmodeltester Change license for tests files 2024-02-04 09:56:42 +01:00
qsignalspy QSignalSpy: separate messages for invalid and non-signal meta-methods 2024-03-22 15:31:39 +01:00
selftests QTest: rip out qxp::function_ref from reportResult() 2024-04-26 18:19:36 +02:00
tostring Change license for tests files 2024-02-04 09:56:42 +01:00
CMakeLists.txt Move the formatting of <chrono> durations to QDebug & QtTest 2023-05-06 17:54:23 +00:00