193 QSet<QByteArray> result = keywords();
195 QByteArray distributionName = QSysInfo::productType().toLower().toUtf8();
196 QByteArray distributionRelease = QSysInfo::productVersion().toLower().toUtf8();
197 if (!distributionName.isEmpty()) {
198 if (result.find(distributionName) == result.end())
199 result.insert(distributionName);
201 if (distributionName ==
"macos") {
202 if (result.find(distributionName) == result.end())
203 result.insert(
"osx");
204 const auto version = QOperatingSystemVersion::current();
205 if (version.majorVersion() >= 11)
206 distributionRelease = QByteArray::number(version.majorVersion());
208 if (!distributionRelease.isEmpty()) {
209 QByteArray versioned = distributionName +
"-" + distributionRelease;
210 if (result.find(versioned) == result.end())
211 result.insert(versioned);
212 if (distributionName ==
"macos") {
213 QByteArray versioned =
"osx-" + distributionRelease;
214 if (result.find(versioned) == result.end())
215 result.insert(versioned);
220 if (qEnvironmentVariableIsSet(
"QTEST_ENVIRONMENT")) {
221 for (
const QByteArray &k : qgetenv(
"QTEST_ENVIRONMENT").split(
' '))
257 const QString filename = QTest::qFindTestData(QStringLiteral(
"BLACKLIST"));
258 if (filename.isEmpty())
260 QFile ignored(filename);
261 if (!ignored.open(QIODevice::ReadOnly))
267 while (ignored.readLineInto(&line)) {
268 const int commentPosition = line.indexOf(
'#');
269 if (commentPosition >= 0)
270 line.truncate(commentPosition);
271 line = line.simplified();
274 if (line.startsWith(
'[')) {
275 function = line.mid(1, line.size() - 2);
278 const bool condition = checkCondition(line);
280 if (!function.size()) {
284 ignoredTests = std::make_unique<std::set<QByteArray>>();
296 if (!ignore && ignoredTests) {
298 ignore = ignoredTests->find(s) != ignoredTests->end();
299 if (!ignore && data) {
300 s = (s +
':') + data;
301 ignore = ignoredTests->find(s) != ignoredTests->end();
304 if (!ignore && global) {
305 s = slot +
":"_ba + global;
306 ignore = ignoredTests->find(s) != ignoredTests->end();
307 if (!ignore && data) {
308 s = (s +
':') + data;
309 ignore = ignoredTests->find(s) != ignoredTests->end();