diff options
author | Christian Stenger <christian.stenger@qt.io> | 2019-10-14 09:54:28 +0200 |
---|---|---|
committer | Christian Stenger <christian.stenger@qt.io> | 2019-10-17 05:53:55 +0000 |
commit | 418c7d108ac2324d1a10c7f769618eecae01f399 (patch) | |
tree | c8693b659f6142d3a34f874db732bf23c252e96d /src/plugins/autotest | |
parent | f7808af946d13d97731ada3b1e3e6e73143a233c (diff) | |
download | qt-creator-418c7d108ac2324d1a10c7f769618eecae01f399.tar.gz |
AutoTest: Fix handling of parameterized boost tests
Setting the parameterized flag after the test case may
have been added to the found tests is useless.
Do it as early as possible to take it into account
when gathering information for location and type.
Beside this the filter for parameterized boost tests
had been wrong which in turn led to not executing
them at all.
Change-Id: I1a4345b2a751c79cc4fc6df8e201e9606c961aaf
Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/autotest')
-rw-r--r-- | src/plugins/autotest/boost/boostcodeparser.cpp | 3 | ||||
-rw-r--r-- | src/plugins/autotest/boost/boosttesttreeitem.cpp | 6 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/plugins/autotest/boost/boostcodeparser.cpp b/src/plugins/autotest/boost/boostcodeparser.cpp index 79c612285b..526bbf1388 100644 --- a/src/plugins/autotest/boost/boostcodeparser.cpp +++ b/src/plugins/autotest/boost/boostcodeparser.cpp @@ -105,6 +105,7 @@ void BoostCodeParser::handleIdentifier() } else if (identifier == "BOOST_TEST_CASE") { handleTestCase(TestCaseType::Functions); } else if (identifier == "BOOST_PARAM_TEST_CASE") { + m_currentState.setFlag(BoostTestTreeItem::Parameterized); handleTestCase(TestCaseType::Parameter); } else if (identifier == "BOOST_AUTO_TEST_CASE") { handleTestCase(TestCaseType::Auto); @@ -203,8 +204,6 @@ void BoostCodeParser::handleTestCase(TestCaseType testCaseType) m_currentState = BoostTestTreeItem::Enabled; return; } - if (testCaseType == TestCaseType::Parameter) - m_currentState |= BoostTestTreeItem::Parameterized; } else if (m_currentState.testFlag(BoostTestTreeItem::Fixture)) { // ignore first parameter (fixture) and first comma if (!skipCommentsUntil(T_IDENTIFIER)) diff --git a/src/plugins/autotest/boost/boosttesttreeitem.cpp b/src/plugins/autotest/boost/boosttesttreeitem.cpp index e2e58c28af..556546f6a4 100644 --- a/src/plugins/autotest/boost/boosttesttreeitem.cpp +++ b/src/plugins/autotest/boost/boosttesttreeitem.cpp @@ -236,6 +236,8 @@ QList<TestConfiguration *> BoostTestTreeItem::getSelectedTestConfigurations() co QString tcName = item->name(); if (item->state().testFlag(BoostTestTreeItem::Templated)) tcName.append("<*"); + else if (item->state().testFlag(BoostTestTreeItem::Parameterized)) + tcName.append('*'); tcName = handleSpecialFunctionNames(tcName); testCasesForProjectFile[item->proFile()].testCases.append( item->prependWithParentsSuitePaths(tcName)); @@ -271,6 +273,8 @@ TestConfiguration *BoostTestTreeItem::testConfiguration() const QString tcName = handleSpecialFunctionNames(boostItem->name()); if (boostItem->type() == TestSuite) // execute everything below a suite tcName.append("/*"); + else if (boostItem->state().testFlag(BoostTestTreeItem::Parameterized)) + tcName.append('*'); else if (boostItem->state().testFlag(BoostTestTreeItem::Templated)) tcName.append("<*"); testCases.append(boostItem->prependWithParentsSuitePaths(tcName)); @@ -281,6 +285,8 @@ TestConfiguration *BoostTestTreeItem::testConfiguration() const QString tcName = name(); if (state().testFlag(BoostTestTreeItem::Templated)) tcName.append("<*"); + else if (state().testFlag(BoostTestTreeItem::Parameterized)) + tcName.append('*'); testCases.append(prependWithParentsSuitePaths(handleSpecialFunctionNames(tcName))); } |