diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2023-05-05 13:06:25 +0200 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2023-05-05 18:07:11 +0200 |
commit | 61e0671681d61bcd643b5f950e1308f4d8430fea (patch) | |
tree | 246a297ccaa84955c593f170688cc4b022233a3e /tests | |
parent | ac8a39c416a5037ca253919fa61a08b4c501906c (diff) | |
download | qtbase-61e0671681d61bcd643b5f950e1308f4d8430fea.tar.gz |
QSlotObject helpers: add testcoverage for std::function
Change-Id: I503c627c77eaab7d2e3456f23b55fdfcdc94c0ea
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/corelib/kernel/qobject/tst_qobject.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp index 3d353a4044..b8f808ddfe 100644 --- a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp +++ b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp @@ -8373,7 +8373,7 @@ public: void callbackInt(int) {} int returnInt() const { return 0; } - static void staticCallback0() {} + static int staticCallback0() { return 0; } static void staticCallback1(const QString &) {} using Prototype0 = int(*)(); @@ -8488,6 +8488,11 @@ void tst_QObject::asyncCallbackHelper() static_assert(compiles<AsyncCaller::Prototype1>(freeFunctionVariant)); + std::function<int()> stdFunction0(&AsyncCaller::staticCallback0); + std::function<void(QString)> stdFunction1(&AsyncCaller::staticCallback1); + static_assert(compiles<AsyncCaller::Prototype0>(stdFunction0)); + static_assert(compiles<AsyncCaller::Prototype1>(stdFunction1)); + AsyncCaller caller; // with context QVERIFY(caller.callMe0(&caller, &AsyncCaller::callback0)); @@ -8496,23 +8501,27 @@ void tst_QObject::asyncCallbackHelper() QVERIFY(caller.callMe0(&caller, lambda0)); QVERIFY(caller.callMe0(&caller, freeFunction0)); QVERIFY(caller.callMe0(&caller, std::move(moveOnlyLambda))); + QVERIFY(caller.callMe0(&caller, stdFunction0)); QVERIFY(caller.callMe1(&caller, &AsyncCaller::callback1)); QVERIFY(caller.callMe1(&caller, &AsyncCaller::staticCallback1)); QVERIFY(caller.callMe1(&caller, lambda1)); QVERIFY(caller.callMe1(&caller, freeFunction1)); QVERIFY(caller.callMe1(&caller, constLambda)); + QVERIFY(caller.callMe1(&caller, stdFunction1)); // without context QVERIFY(caller.callMe0(&AsyncCaller::staticCallback0)); QVERIFY(caller.callMe0(lambda0)); QVERIFY(caller.callMe0(freeFunction0)); + QVERIFY(caller.callMe0(stdFunction0)); QVERIFY(caller.callMe1(&AsyncCaller::staticCallback1)); QVERIFY(caller.callMe1(lambda1)); QVERIFY(caller.callMe1(constLambda)); QVERIFY(caller.callMe1(std::move(moveOnlyLambda1))); QVERIFY(caller.callMe1(freeFunction1)); + QVERIFY(caller.callMe1(stdFunction1)); static const char *expectedPayload = "Hello World!"; { |