aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktestutils/qml/qmlutils.cpp
diff options
context:
space:
mode:
authorMitch Curtis <mitch.curtis@qt.io>2022-06-07 10:23:31 +0800
committerMitch Curtis <mitch.curtis@qt.io>2022-07-05 14:34:37 +0800
commit234afb5502ab20b4f58ddd9b01a4245330a7e5a4 (patch)
tree44f3bea37e8fd6abddf5f7d26095373c7dd0b44f /src/quicktestutils/qml/qmlutils.cpp
parent7112b4e0cc9b7625288d0464c02d92390ab0f193 (diff)
Add convenience API for making QQmlDataTest-based tests fail on warnings
After this patch, if a QQmlDataTest-derived class passes FailOnWarningsPolicy::FailOnWarnings to the base constructor, any non-empty warning encountered by that test will result in a test failure. This avoids the need to duplicate the catch-all regex in tests that want to fail on warnings. The goal is to gradually enable failure-on-warnings over time. Leave comments and explicitly pass DoNotFailOnWarnings for tests that should never fail on warnings. Task-number: QTBUG-98718 Pick-to: 6.2 6.3 6.4 Change-Id: I4b647d93a0f28ac891c4bdb19ef74569f2918e8f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/quicktestutils/qml/qmlutils.cpp')
-rw-r--r--src/quicktestutils/qml/qmlutils.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/quicktestutils/qml/qmlutils.cpp b/src/quicktestutils/qml/qmlutils.cpp
index 343e12d298..658b952573 100644
--- a/src/quicktestutils/qml/qmlutils.cpp
+++ b/src/quicktestutils/qml/qmlutils.cpp
@@ -12,7 +12,7 @@ QT_BEGIN_NAMESPACE
QQmlDataTest *QQmlDataTest::m_instance = nullptr;
-QQmlDataTest::QQmlDataTest(const char *qmlTestDataDir) :
+QQmlDataTest::QQmlDataTest(const char *qmlTestDataDir, FailOnWarningsPolicy failOnWarningsPolicy) :
m_qmlTestDataDir(qmlTestDataDir),
#ifdef QT_TESTCASE_BUILDDIR
m_dataDirectory(QTest::qFindTestData("data", m_qmlTestDataDir, 0, QT_TESTCASE_BUILDDIR)),
@@ -22,7 +22,8 @@ QQmlDataTest::QQmlDataTest(const char *qmlTestDataDir) :
m_dataDirectoryUrl(m_dataDirectory.startsWith(QLatin1Char(':'))
? QUrl(QLatin1String("qrc") + m_dataDirectory + QLatin1Char('/'))
- : QUrl::fromLocalFile(m_dataDirectory + QLatin1Char('/')))
+ : QUrl::fromLocalFile(m_dataDirectory + QLatin1Char('/'))),
+ m_failOnWarningsPolicy(failOnWarningsPolicy)
{
m_instance = this;
if (m_cacheDir.isValid() && !qEnvironmentVariableIsSet("QML_DISK_CACHE_PATH")) {
@@ -47,6 +48,12 @@ void QQmlDataTest::initTestCase()
QVERIFY2(QDir::setCurrent(m_directory), qPrintable(QLatin1String("Could not chdir to ") + m_directory));
}
+void QQmlDataTest::init()
+{
+ if (m_failOnWarningsPolicy == FailOnWarningsPolicy::FailOnWarnings)
+ QTest::failOnWarning(QRegularExpression(QStringLiteral(".?")));
+}
+
QString QQmlDataTest::testFile(const QString &fileName) const
{
if (m_directory.isEmpty())