190 QSet<QByteArray> result = keywords();
192 QByteArray distributionName = QSysInfo::productType().toLower().toUtf8();
193 QByteArray distributionRelease = QSysInfo::productVersion().toLower().toUtf8();
194 if (!distributionName.isEmpty()) {
195 if (result.find(distributionName) == result.end())
196 result.insert(distributionName);
198 if (distributionName ==
"macos") {
199 if (result.find(distributionName) == result.end())
200 result.insert(
"osx");
201 const auto version = QOperatingSystemVersion::current();
202 if (version.majorVersion() >= 11)
203 distributionRelease = QByteArray::number(version.majorVersion());
205 if (!distributionRelease.isEmpty()) {
206 QByteArray versioned = distributionName +
"-" + distributionRelease;
207 if (result.find(versioned) == result.end())
208 result.insert(versioned);
209 if (distributionName ==
"macos") {
210 QByteArray versioned =
"osx-" + distributionRelease;
211 if (result.find(versioned) == result.end())
212 result.insert(versioned);
217 if (qEnvironmentVariableIsSet(
"QTEST_ENVIRONMENT")) {
218 for (
const QByteArray &k : qgetenv(
"QTEST_ENVIRONMENT").split(
' '))
254 const QString filename = QTest::qFindTestData(QStringLiteral(
"BLACKLIST"));
255 if (filename.isEmpty())
257 QFile ignored(filename);
258 if (!ignored.open(QIODevice::ReadOnly))
264 while (ignored.readLineInto(&line)) {
265 const int commentPosition = line.indexOf(
'#');
266 if (commentPosition >= 0)
267 line.truncate(commentPosition);
268 line = line.simplified();
271 if (line.startsWith(
'[')) {
272 function = line.mid(1, line.size() - 2);
275 const bool condition = checkCondition(line);
277 if (!function.size()) {
281 ignoredTests =
new std::set<QByteArray>;
293 if (!ignore && ignoredTests) {
295 ignore = ignoredTests->find(s) != ignoredTests->end();
296 if (!ignore && data) {
297 s = (s +
':') + data;
298 ignore = ignoredTests->find(s) != ignoredTests->end();
301 if (!ignore && global) {
302 s = slot +
":"_ba + global;
303 ignore = ignoredTests->find(s) != ignoredTests->end();
304 if (!ignore && data) {
305 s = (s +
':') + data;
306 ignore = ignoredTests->find(s) != ignoredTests->end();