diff options
| author | Mitch Curtis <mitch.curtis@qt.io> | 2022-06-07 10:23:31 +0800 |
|---|---|---|
| committer | Mitch Curtis <mitch.curtis@qt.io> | 2022-07-05 14:34:37 +0800 |
| commit | 234afb5502ab20b4f58ddd9b01a4245330a7e5a4 (patch) | |
| tree | 44f3bea37e8fd6abddf5f7d26095373c7dd0b44f /src/quicktestutils/qml/qmlutils.cpp | |
| parent | 7112b4e0cc9b7625288d0464c02d92390ab0f193 (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.cpp | 11 |
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()) |
