diff options
author | Christian Stenger <christian.stenger@qt.io> | 2023-01-13 07:35:56 +0100 |
---|---|---|
committer | Christian Stenger <christian.stenger@qt.io> | 2023-01-13 09:58:57 +0000 |
commit | 274bb27cf3b8a5d888bafa069925e230bf5ae90c (patch) | |
tree | 1a3a1159aaa614ae553c960088e0020b48db877d | |
parent | 1b6d434c9c045d09d3760f7db2025e29d37dc25c (diff) |
AutoTest: Redo handling of data tags with spaces
This basically reverts commit 7684571e108f5d as it broke running
the test inside the debugger.
Change-Id: Iacd46e2b9fb5af813fbf17156fd847375d750480
Reviewed-by: David Schulz <david.schulz@qt.io>
-rw-r--r-- | src/plugins/autotest/qtest/qttestconfiguration.cpp | 13 | ||||
-rw-r--r-- | src/plugins/autotest/qtest/qttesttreeitem.cpp | 14 |
2 files changed, 16 insertions, 11 deletions
diff --git a/src/plugins/autotest/qtest/qttestconfiguration.cpp b/src/plugins/autotest/qtest/qttestconfiguration.cpp index 529821644c..6a316b0657 100644 --- a/src/plugins/autotest/qtest/qttestconfiguration.cpp +++ b/src/plugins/autotest/qtest/qttestconfiguration.cpp @@ -10,11 +10,22 @@ #include "../itestframework.h" #include "../testsettings.h" +#include <utils/algorithm.h> #include <utils/stringutils.h> namespace Autotest { namespace Internal { +static QStringList quoteIfNeeded(const QStringList &testCases, bool debugMode) +{ + if (debugMode) + return testCases; + + return Utils::transform(testCases, [](const QString &testCase){ + return testCase.contains(' ') ? '"' + testCase + '"' : testCase; + }); +} + TestOutputReader *QtTestConfiguration::outputReader(const QFutureInterface<TestResultPtr> &fi, Utils::QtcProcess *app) const { @@ -39,7 +50,7 @@ QStringList QtTestConfiguration::argumentsForTestRunner(QStringList *omitted) co if (qtSettings->useXMLOutput.value()) arguments << "-xml"; if (!testCases().isEmpty()) - arguments << testCases(); + arguments << quoteIfNeeded(testCases(), isDebugRunMode()); const QString &metricsOption = QtTestSettings::metricsTypeToOption(MetricsType(qtSettings->metrics.value())); if (!metricsOption.isEmpty()) diff --git a/src/plugins/autotest/qtest/qttesttreeitem.cpp b/src/plugins/autotest/qtest/qttesttreeitem.cpp index dcada43181..222680d4cf 100644 --- a/src/plugins/autotest/qtest/qttesttreeitem.cpp +++ b/src/plugins/autotest/qtest/qttesttreeitem.cpp @@ -15,13 +15,6 @@ namespace Autotest { namespace Internal { -static QString functionWithDataTagAsArg(const QString &func, const QString &dataTag) -{ - if (dataTag.contains(' ')) - return '"' + func + ':' + dataTag + '"'; - return func + ':' + dataTag; -} - QtTestTreeItem::QtTestTreeItem(ITestFramework *testFramework, const QString &name, const Utils::FilePath &filePath, TestTreeItem::Type type) : TestTreeItem(testFramework, name, filePath, type) @@ -147,8 +140,9 @@ ITestConfiguration *QtTestTreeItem::testConfiguration() const const TestTreeItem *parent = function ? function->parentItem() : nullptr; if (!parent) return nullptr; + const QString functionWithTag = function->name() + ':' + name(); config = new QtTestConfiguration(framework()); - config->setTestCases(QStringList(functionWithDataTagAsArg(function->name(), name()))); + config->setTestCases(QStringList(functionWithTag)); config->setProjectFile(parent->proFile()); config->setProject(project); break; @@ -191,7 +185,7 @@ static void fillTestConfigurationsFromCheckState(const TestTreeItem *item, const QString funcName = grandChild->name(); grandChild->forFirstLevelChildren([&testCases, &funcName](ITestTreeItem *dataTag) { if (dataTag->checked() == Qt::Checked) - testCases << functionWithDataTagAsArg(funcName, dataTag->name()); + testCases << funcName + ':' + dataTag->name(); }); } }); @@ -223,7 +217,7 @@ static void collectFailedTestInfo(TestTreeItem *item, QList<ITestConfiguration * } else { func->forFirstLevelChildren([&testCases, func](ITestTreeItem *dataTag) { if (dataTag->data(0, FailedRole).toBool()) - testCases << functionWithDataTagAsArg(func->name(), dataTag->name()); + testCases << func->name() + ':' + dataTag->name(); }); } }); |