From 418c7d108ac2324d1a10c7f769618eecae01f399 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Mon, 14 Oct 2019 09:54:28 +0200 Subject: 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 --- src/plugins/autotest/boost/boostcodeparser.cpp | 3 +-- 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 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))); } -- cgit v1.2.1