diff --git a/src/plugins/autotest/autotestplugin.cpp b/src/plugins/autotest/autotestplugin.cpp index 2502b641464..c74ad31d277 100644 --- a/src/plugins/autotest/autotestplugin.cpp +++ b/src/plugins/autotest/autotestplugin.cpp @@ -472,6 +472,21 @@ void popupResultsPane() dd->m_resultsPane->popup(Core::IOutputPane::NoModeSwitch); } +QString wildcardPatternFromString(const QString &original) +{ + QString pattern = original; + pattern.replace('\\', "\\\\"); + pattern.replace('.', "\\."); + pattern.replace('^', "\\^").replace('$', "\\$"); + pattern.replace('(', "\\(").replace(')', "\\)"); + pattern.replace('[', "\\[").replace(']', "\\]"); + pattern.replace('{', "\\{").replace('}', "\\}"); + pattern.replace('+', "\\+"); + pattern.replace('*', ".*"); + pattern.replace('?', '.'); + return pattern; +} + bool ChoicePair::matches(const ProjectExplorer::RunConfiguration *rc) const { return rc && rc->displayName() == displayName && rc->runnable().command.executable() == executable; diff --git a/src/plugins/autotest/autotestplugin.h b/src/plugins/autotest/autotestplugin.h index a70066813d9..a97c04c2741 100644 --- a/src/plugins/autotest/autotestplugin.h +++ b/src/plugins/autotest/autotestplugin.h @@ -33,6 +33,6 @@ void cacheRunConfigChoice(const QString &buildTargetKey, const ChoicePair &choic ChoicePair cachedChoiceFor(const QString &buildTargetKey); void clearChoiceCache(); void popupResultsPane(); - +QString wildcardPatternFromString(const QString &original); } // Autotest::Internal diff --git a/src/plugins/autotest/gtest/gtesttreeitem.cpp b/src/plugins/autotest/gtest/gtesttreeitem.cpp index 8ece0e618ab..42b10020052 100644 --- a/src/plugins/autotest/gtest/gtesttreeitem.cpp +++ b/src/plugins/autotest/gtest/gtesttreeitem.cpp @@ -8,6 +8,7 @@ #include "gtestframework.h" #include "gtestparser.h" #include "../autotesttr.h" +#include "../autotestplugin.h" #include @@ -56,20 +57,6 @@ TestTreeItem *GTestTreeItem::copyWithoutChildren() return copied; } -static QString wildCardPattern(const QString &original) -{ - QString pattern = original; - pattern.replace('.', "\\."); - pattern.replace('$', "\\$"); - pattern.replace('(', "\\(").replace(')', "\\)"); - pattern.replace('[', "\\[").replace(']', "\\]"); - pattern.replace('{', "\\{").replace('}', "\\}"); - pattern.replace('+', "\\+"); - pattern.replace('*', ".*"); - pattern.replace('?', '.'); - return pattern; -} - static bool matchesFilter(const QString &filter, const QString &fullTestName) { QStringList positive; @@ -87,12 +74,12 @@ static bool matchesFilter(const QString &filter, const QString &fullTestName) testName.append('.'); for (const QString &curr : negative) { - QRegularExpression regex(wildCardPattern(curr)); + QRegularExpression regex(wildcardPatternFromString(curr)); if (regex.match(testName).hasMatch()) return false; } for (const QString &curr : positive) { - QRegularExpression regex(wildCardPattern(curr)); + QRegularExpression regex(wildcardPatternFromString(curr)); if (regex.match(testName).hasMatch()) return true; }