diff --git a/src/testlib/qtestblacklist.cpp b/src/testlib/qtestblacklist.cpp index 04c6aa2717..da98b88989 100644 --- a/src/testlib/qtestblacklist.cpp +++ b/src/testlib/qtestblacklist.cpp @@ -135,19 +135,26 @@ static QSet keywords() return set; } -static bool checkCondition(const QByteArray &condition) +static QSet activeConditions() { - static QSet matchedConditions = keywords(); - QList conds = condition.split(' '); + QSet result = keywords(); QByteArray distributionName = QSysInfo::productType().toLower().toUtf8(); QByteArray distributionRelease = QSysInfo::productVersion().toLower().toUtf8(); if (!distributionName.isEmpty()) { - if (matchedConditions.find(distributionName) == matchedConditions.end()) - matchedConditions.insert(distributionName); - matchedConditions.insert(distributionName + "-" + distributionRelease); + if (result.find(distributionName) == result.end()) + result.insert(distributionName); + result.insert(distributionName + "-" + distributionRelease); } + return result; +} + +static bool checkCondition(const QByteArray &condition) +{ + static const QSet matchedConditions = activeConditions(); + QList conds = condition.split(' '); + for (int i = 0; i < conds.size(); ++i) { QByteArray c = conds.at(i); bool result = c.startsWith('!');