GTest: do not change arguments order of testRunner

transforming list of args to set can change order
of arguments as well as count, which can make
application unable to run

Change-Id: Ib8164e0b7661511f738bdc3b21e74fbaaa6a5252
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
Petar Perisin
2021-12-07 22:50:51 +01:00
parent 9575c45cf5
commit 0b736c3f7a

View File

@@ -59,18 +59,18 @@ QStringList filterInterfering(const QStringList &provided, QStringList *omitted)
"--gtest_print_time=" "--gtest_print_time="
}; };
QSet<QString> allowed = Utils::filtered(Utils::toSet(provided), [] (const QString &arg) { QStringList allowed = Utils::filtered(provided, [] (const QString &arg) {
return Utils::allOf(knownInterferingOptions, [&arg] (const QString &interfering) { return Utils::allOf(knownInterferingOptions, [&arg] (const QString &interfering) {
return !arg.startsWith(interfering); return !arg.startsWith(interfering);
}); });
}); });
if (omitted) { if (omitted && allowed.size() < provided.size()) {
QSet<QString> providedSet = Utils::toSet(provided); QSet<QString> providedSet = Utils::toSet(provided);
providedSet.subtract(allowed); providedSet.subtract(Utils::toSet(allowed));
omitted->append(Utils::toList(providedSet)); omitted->append(Utils::toList(providedSet));
} }
return Utils::toList(allowed); return allowed;
} }
QStringList GTestConfiguration::argumentsForTestRunner(QStringList *omitted) const QStringList GTestConfiguration::argumentsForTestRunner(QStringList *omitted) const