summaryrefslogtreecommitdiffstats
path: root/src/testlib/qtestblacklist.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/testlib/qtestblacklist.cpp')
-rw-r--r--src/testlib/qtestblacklist.cpp46
1 files changed, 27 insertions, 19 deletions
diff --git a/src/testlib/qtestblacklist.cpp b/src/testlib/qtestblacklist.cpp
index 7b64942e7b..95dfb28e69 100644
--- a/src/testlib/qtestblacklist.cpp
+++ b/src/testlib/qtestblacklist.cpp
@@ -23,10 +23,14 @@ using namespace Qt::StringLiterals;
Blank lines and everything after # is simply ignored. An initial #-line
referring to this documentation is kind to readers. Comments can also be used
- to indicate the reasons for ignoring particular cases.
+ to indicate the reasons for ignoring particular cases. Please scope comments
+ to keywords if possible, to avoid confusion when additional keywords or tests
+ cases are added later.
- The key "ci" applies only when run by COIN. The key "cmake" applies when Qt
- is built using CMake. Other keys name platforms, operating systems,
+ Each blacklist line is interpreted as a list of keywords in an AND-relationship.
+ To blacklist a test for multiple platforms (OR-relationship), use separate lines.
+
+ The key "ci" applies only when run by COIN. Other keys name platforms, operating systems,
distributions, tool-chains or architectures; a ! prefix reverses what it
checks. A version, joined to a key (at present, only for distributions and
for msvc) with a hyphen, limits the key to the specific version. A keyword
@@ -44,24 +48,22 @@ using namespace Qt::StringLiterals;
data row's name coincides with that of a local data row, some unintended
matches may result; try to keep your data-row tags distinct.)
- Subsequent lines give conditions for ignoring this test.
+ Subsequent lines give conditions for ignoring this test. You need at least
+ one or the group has no effect.
# See qtbase/src/testlib/qtestblacklist.cpp for format
# Test doesn't work on QNX at all
qnx
- # QTBUG-12345
[testFunction]
- linux
- windows 64bit
+ linux # QTBUG-12345
+ windows 64bit # QTBUG-12345
- # Flaky in COIN on macOS, not reproducible by developers
[testSlowly]
- ci osx
+ macos ci # Flaky in COIN on macOS, not reproducible by developers
- # Needs basic C++11 support
[testfunction2:testData]
- msvc-2010
+ msvc-2010 # Needs basic C++11 support
[getFile:withProxy SSL:localhost]
android
@@ -72,9 +74,8 @@ using namespace Qt::StringLiterals;
For example, to blacklist a QML test on RHEL 7.6:
- # QTBUG-12345
[Button::test_display:TextOnly]
- ci rhel-7.6
+ ci rhel-7.6 # QTBUG-12345
Keys are lower-case. Distribution name and version are supported if
QSysInfo's productType() and productVersion() return them.
@@ -115,12 +116,18 @@ static QSet<QByteArray> keywords()
#ifdef Q_OS_WATCHOS
<< "watchos"
#endif
+#ifdef Q_OS_VISIONOS
+ << "visionos"
+#endif
#ifdef Q_OS_ANDROID
<< "android"
#endif
#ifdef Q_OS_QNX
<< "qnx"
#endif
+#ifdef Q_OS_VXWORKS
+ << "vxworks"
+#endif
#ifdef Q_OS_WEBOS
<< "webos"
#endif
@@ -149,8 +156,10 @@ static QSet<QByteArray> keywords()
<< "msvc-2015"
# elif _MSC_VER <= 1916
<< "msvc-2017"
-# else
+# elif _MSC_VER <= 1929
<< "msvc-2019"
+# else
+ << "msvc-2022"
# endif
#endif
@@ -164,8 +173,6 @@ static QSet<QByteArray> keywords()
#ifdef QT_BUILD_INTERNAL
<< "developer-build"
#endif
-
- << "cmake"
;
QCoreApplication *app = QCoreApplication::instance();
@@ -257,7 +264,7 @@ void parseBlackList()
if (line.isEmpty())
continue;
if (line.startsWith('[')) {
- function = line.mid(1, line.length() - 2);
+ function = line.mid(1, line.size() - 2);
continue;
}
bool condition = checkCondition(line);
@@ -273,7 +280,8 @@ void parseBlackList()
}
}
-void checkBlackLists(const char *slot, const char *data, const char *global)
+// Returns \c true if this test-case is blacklisted.
+bool checkBlackLists(const char *slot, const char *data, const char *global)
{
bool ignore = ignoreAll;
@@ -295,7 +303,7 @@ void checkBlackLists(const char *slot, const char *data, const char *global)
}
}
- QTestResult::setBlacklistCurrentTest(ignore);
+ return ignore;
}
} // QTestPrivate