From 7e021ab89161209f515fefd7b23f0cf75500bcb8 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 26 Jan 2024 14:24:58 +0100 Subject: [PATCH] tst_QAbstractProxyModel: port to QTEST_THROW_ON_FAIL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dogfooding the new QtTest 6.8 feature. This not only helps with the sourceModelBinding() test with its manual currentTestFailed() calls, but also the old verifySubSetOf() helper function that's there from Qt 4 times. Use Ye Olde Scope Guard Trickā„¢ to replace the qDebug() messages recording where failures occurred. Change-Id: I4d1460bde5315dfcc3b261b6e09c7293bbd9ff89 Reviewed-by: Fabian Kosmale (cherry picked from commit 32fc8b936d1d036ba5b70ec1cac7681e1c9359c8) Reviewed-by: Qt Cherry-pick Bot --- tests/auto/corelib/itemmodels/CMakeLists.txt | 2 ++ .../qabstractproxymodel/CMakeLists.txt | 4 +++ .../tst_qabstractproxymodel.cpp | 33 ++++++++++++------- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/tests/auto/corelib/itemmodels/CMakeLists.txt b/tests/auto/corelib/itemmodels/CMakeLists.txt index c0cd04df128..a8aa7438877 100644 --- a/tests/auto/corelib/itemmodels/CMakeLists.txt +++ b/tests/auto/corelib/itemmodels/CMakeLists.txt @@ -5,7 +5,9 @@ add_subdirectory(qstringlistmodel) if(TARGET Qt::Gui) add_subdirectory(qabstractitemmodel) if(QT_FEATURE_proxymodel) + if (NOT WASM) # QTBUG-121822 add_subdirectory(qabstractproxymodel) + endif() add_subdirectory(qconcatenatetablesproxymodel) add_subdirectory(qidentityproxymodel) add_subdirectory(qsortfilterproxymodel_recursive) diff --git a/tests/auto/corelib/itemmodels/qabstractproxymodel/CMakeLists.txt b/tests/auto/corelib/itemmodels/qabstractproxymodel/CMakeLists.txt index 87998143248..ea90d1dd793 100644 --- a/tests/auto/corelib/itemmodels/qabstractproxymodel/CMakeLists.txt +++ b/tests/auto/corelib/itemmodels/qabstractproxymodel/CMakeLists.txt @@ -14,6 +14,10 @@ endif() qt_internal_add_test(tst_qabstractproxymodel SOURCES tst_qabstractproxymodel.cpp + NO_BATCH # QTBUG-121815 + DEFINES + QTEST_THROW_ON_FAIL + QTEST_THROW_ON_SKIP LIBRARIES Qt::Gui Qt::TestPrivate diff --git a/tests/auto/corelib/itemmodels/qabstractproxymodel/tst_qabstractproxymodel.cpp b/tests/auto/corelib/itemmodels/qabstractproxymodel/tst_qabstractproxymodel.cpp index 62512889fda..73a81f56ab8 100644 --- a/tests/auto/corelib/itemmodels/qabstractproxymodel/tst_qabstractproxymodel.cpp +++ b/tests/auto/corelib/itemmodels/qabstractproxymodel/tst_qabstractproxymodel.cpp @@ -3,10 +3,17 @@ #include #include + +#ifndef QTEST_THROW_ON_FAIL +# error This test requires QTEST_THROW_ON_FAIL being active. +#endif + #include #include #include +#include + class tst_QAbstractProxyModel : public QObject { Q_OBJECT @@ -610,28 +617,30 @@ void tst_QAbstractProxyModel::sourceModelBinding() SubQAbstractProxyModel proxy; QStandardItemModel model1; QStandardItemModel model2; + const char *lhs; + const char *rhs; + + auto printOnFailure = qScopeGuard([&] { + qDebug("Failed %s - %s test", lhs, rhs); + }); + lhs = "model"; + rhs = "model"; QTestPrivate::testReadWritePropertyBasics( proxy, &model1, &model2, "sourceModel"); - if (QTest::currentTestFailed()) { - qDebug("Failed model - model test"); - return; - } proxy.setSourceModel(&model2); + lhs = "model"; + rhs = "nullptr"; QTestPrivate::testReadWritePropertyBasics( proxy, &model1, nullptr, "sourceModel"); - if (QTest::currentTestFailed()) { - qDebug("Failed model - nullptr test"); - return; - } proxy.setSourceModel(&model1); + lhs = "nullptr"; + rhs = "model"; QTestPrivate::testReadWritePropertyBasics( proxy, nullptr, &model2, "sourceModel"); - if (QTest::currentTestFailed()) { - qDebug("Failed nullptr - model test"); - return; - } + + printOnFailure.dismiss(); } QTEST_MAIN(tst_QAbstractProxyModel)