summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/kernel
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2018-01-20 22:34:43 +0100
committerLiang Qi <liang.qi@qt.io>2018-01-20 22:36:19 +0100
commit65a97fccc67ae7f3df1900e1419955f939a49b9f (patch)
treea8fd0e119b585123e77e3b2574f2d82a5474eb28 /tests/auto/corelib/kernel
parent5e8bc07cb2ded1f5f74435411de666f419869514 (diff)
parent1303327a713d8f88fd9782e4f887b646d4210f68 (diff)
Merge remote-tracking branch 'origin/5.10' into dev
Conflicts: tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp Change-Id: If089d5010d15c33b3c1f13912d4386207456c1a9
Diffstat (limited to 'tests/auto/corelib/kernel')
-rw-r--r--tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp80
1 files changed, 55 insertions, 25 deletions
diff --git a/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp b/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp
index 35e14b7dbf..431a9ebdea 100644
--- a/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp
+++ b/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp
@@ -779,13 +779,22 @@ void tst_QMetaObject::invokePointer()
QCOMPARE(QtTestObject::staticResult, QString("staticFunction1"));
// Test lambdas
- QVERIFY(QMetaObject::invokeMethod(&obj, [&](){obj.sl1(t1);}));
- QCOMPARE(obj.slotResult, QString("sl1:1"));
-
- QString exp;
- QVERIFY(QMetaObject::invokeMethod(&obj, [&]()->QString{return obj.sl1("bubu");}, &exp));
- QCOMPARE(exp, QString("yessir"));
- QCOMPARE(obj.slotResult, QString("sl1:bubu"));
+ QCOMPARE(countedStructObjectsCount, 0);
+ {
+ CountedStruct str;
+ QVERIFY(QMetaObject::invokeMethod(&obj, [str, &t1, &obj]() { obj.sl1(t1); }));
+ QCOMPARE(obj.slotResult, QString("sl1:1"));
+ }
+ QCOMPARE(countedStructObjectsCount, 0);
+ {
+ CountedStruct str;
+ QString exp;
+ QVERIFY(QMetaObject::invokeMethod(
+ &obj, [str, &obj]() -> QString { return obj.sl1("bubu"); }, &exp));
+ QCOMPARE(exp, QString("yessir"));
+ QCOMPARE(obj.slotResult, QString("sl1:bubu"));
+ }
+ QCOMPARE(countedStructObjectsCount, 0);
}
void tst_QMetaObject::invokeQueuedMetaMember()
@@ -873,16 +882,28 @@ void tst_QMetaObject::invokeQueuedPointer()
QCOMPARE(QtTestObject::staticResult, QString("staticFunction0"));
// Test lambda
- obj.slotResult.clear();
- QVERIFY(QMetaObject::invokeMethod(&obj, [&](){obj.sl0();}, Qt::QueuedConnection));
- QVERIFY(obj.slotResult.isEmpty());
- qApp->processEvents(QEventLoop::AllEvents);
- QCOMPARE(obj.slotResult, QString("sl0"));
-
- qint32 var = 0;
- QTest::ignoreMessage(QtWarningMsg, "QMetaObject::invokeMethod: Unable to invoke methods with return values in queued connections");
- QVERIFY(!QMetaObject::invokeMethod(&obj, []()->qint32{return 1;}, Qt::QueuedConnection, &var));
- QCOMPARE(var, 0);
+ QCOMPARE(countedStructObjectsCount, 0);
+ {
+ CountedStruct str;
+ obj.slotResult.clear();
+ QVERIFY(
+ QMetaObject::invokeMethod(&obj, [str, &obj]() { obj.sl0(); }, Qt::QueuedConnection));
+ QVERIFY(obj.slotResult.isEmpty());
+ qApp->processEvents(QEventLoop::AllEvents);
+ QCOMPARE(obj.slotResult, QString("sl0"));
+ }
+ QCOMPARE(countedStructObjectsCount, 0);
+ {
+ CountedStruct str;
+ qint32 var = 0;
+ QTest::ignoreMessage(QtWarningMsg,
+ "QMetaObject::invokeMethod: Unable to invoke methods with return "
+ "values in queued connections");
+ QVERIFY(!QMetaObject::invokeMethod(&obj, [str]() -> qint32 { return 1; },
+ Qt::QueuedConnection, &var));
+ QCOMPARE(var, 0);
+ }
+ QCOMPARE(countedStructObjectsCount, 0);
}
@@ -1063,17 +1084,26 @@ void tst_QMetaObject::invokeBlockingQueuedPointer()
QCOMPARE(QtTestObject::staticResult, QString("staticFunction1"));
// Test lambdas
- QVERIFY(QMetaObject::invokeMethod(&obj, [&](){obj.sl1(t1);}, Qt::BlockingQueuedConnection));
- QCOMPARE(obj.slotResult, QString("sl1:1"));
-
- QString exp;
- QVERIFY(QMetaObject::invokeMethod(&obj, [&]()->QString{return obj.sl1("bubu");}, Qt::BlockingQueuedConnection, &exp));
- QCOMPARE(exp, QString("yessir"));
- QCOMPARE(obj.slotResult, QString("sl1:bubu"));
-
+ QCOMPARE(countedStructObjectsCount, 0);
+ {
+ CountedStruct str;
+ QVERIFY(QMetaObject::invokeMethod(&obj, [str, &obj, &t1]() { obj.sl1(t1); },
+ Qt::BlockingQueuedConnection));
+ QCOMPARE(obj.slotResult, QString("sl1:1"));
+ }
+ {
+ CountedStruct str;
+ QString exp;
+ QVERIFY(QMetaObject::invokeMethod(&obj,
+ [&obj, str]() -> QString { return obj.sl1("bubu"); },
+ Qt::BlockingQueuedConnection, &exp));
+ QCOMPARE(exp, QString("yessir"));
+ QCOMPARE(obj.slotResult, QString("sl1:bubu"));
+ }
QVERIFY(QMetaObject::invokeMethod(&obj, [&](){obj.moveToThread(QThread::currentThread());}, Qt::BlockingQueuedConnection));
t.quit();
QVERIFY(t.wait());
+ QCOMPARE(countedStructObjectsCount, 0);
}