diff options
author | Liang Qi <liang.qi@qt.io> | 2018-01-20 22:34:43 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-01-20 22:36:19 +0100 |
commit | 65a97fccc67ae7f3df1900e1419955f939a49b9f (patch) | |
tree | a8fd0e119b585123e77e3b2574f2d82a5474eb28 /tests/auto/corelib/kernel | |
parent | 5e8bc07cb2ded1f5f74435411de666f419869514 (diff) | |
parent | 1303327a713d8f88fd9782e4f887b646d4210f68 (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.cpp | 80 |
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); } |