forked from qt-creator/qt-creator
AutoTest: Use base of framework inside TestTreeItem
...and respectively inside the parse results which hold the information that are used to create the items. Change-Id: I78f7b5632df5d449d39fa03ffbf48036a138e337 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
#include "boosttestparser.h"
|
#include "boosttestparser.h"
|
||||||
#include "boostcodeparser.h"
|
#include "boostcodeparser.h"
|
||||||
|
#include "boosttestframework.h"
|
||||||
#include "boosttesttreeitem.h"
|
#include "boosttesttreeitem.h"
|
||||||
|
|
||||||
#include <cpptools/cppmodelmanager.h>
|
#include <cpptools/cppmodelmanager.h>
|
||||||
@@ -56,7 +57,7 @@ TestTreeItem *BoostTestParseResult::createTestTreeItem() const
|
|||||||
if (itemType == TestTreeItem::Root)
|
if (itemType == TestTreeItem::Root)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
BoostTestTreeItem *item = new BoostTestTreeItem(framework, displayName, fileName, itemType);
|
BoostTestTreeItem *item = new BoostTestTreeItem(base, displayName, fileName, itemType);
|
||||||
item->setProFile(proFile);
|
item->setProFile(proFile);
|
||||||
item->setLine(line);
|
item->setLine(line);
|
||||||
item->setColumn(column);
|
item->setColumn(column);
|
||||||
@@ -98,10 +99,10 @@ static bool hasBoostTestMacros(const CPlusPlus::Document::Ptr &doc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static BoostTestParseResult *createParseResult(const QString &name, const QString &filePath,
|
static BoostTestParseResult *createParseResult(const QString &name, const QString &filePath,
|
||||||
const QString &projectFile, ITestFramework *framework,
|
const QString &projectFile, ITestBase *base,
|
||||||
TestTreeItem::Type type, const BoostTestInfo &info)
|
TestTreeItem::Type type, const BoostTestInfo &info)
|
||||||
{
|
{
|
||||||
BoostTestParseResult *partialSuite = new BoostTestParseResult(framework);
|
BoostTestParseResult *partialSuite = new BoostTestParseResult(base);
|
||||||
partialSuite->itemType = type;
|
partialSuite->itemType = type;
|
||||||
partialSuite->fileName = filePath;
|
partialSuite->fileName = filePath;
|
||||||
partialSuite->name = info.fullName;
|
partialSuite->name = info.fullName;
|
||||||
@@ -117,7 +118,7 @@ static BoostTestParseResult *createParseResult(const QString &name, const QStrin
|
|||||||
static bool handleBoostTest(QFutureInterface<TestParseResultPtr> futureInterface,
|
static bool handleBoostTest(QFutureInterface<TestParseResultPtr> futureInterface,
|
||||||
const CPlusPlus::Document::Ptr &doc,
|
const CPlusPlus::Document::Ptr &doc,
|
||||||
const CPlusPlus::Snapshot &snapshot,
|
const CPlusPlus::Snapshot &snapshot,
|
||||||
ITestFramework *framework)
|
ITestBase *base)
|
||||||
{
|
{
|
||||||
const CppTools::CppModelManager *modelManager = CppTools::CppModelManager::instance();
|
const CppTools::CppModelManager *modelManager = CppTools::CppModelManager::instance();
|
||||||
const QString &filePath = doc->fileName();
|
const QString &filePath = doc->fileName();
|
||||||
@@ -139,7 +140,7 @@ static bool handleBoostTest(QFutureInterface<TestParseResultPtr> futureInterface
|
|||||||
BoostTestInfo firstSuite = suitesStates.first();
|
BoostTestInfo firstSuite = suitesStates.first();
|
||||||
QStringList suites = firstSuite.fullName.split('/');
|
QStringList suites = firstSuite.fullName.split('/');
|
||||||
BoostTestParseResult *topLevelSuite = createParseResult(suites.first(), filePath,
|
BoostTestParseResult *topLevelSuite = createParseResult(suites.first(), filePath,
|
||||||
projectFile, framework,
|
projectFile, base,
|
||||||
TestTreeItem::TestSuite,
|
TestTreeItem::TestSuite,
|
||||||
firstSuite);
|
firstSuite);
|
||||||
BoostTestParseResult *currentSuite = topLevelSuite;
|
BoostTestParseResult *currentSuite = topLevelSuite;
|
||||||
@@ -148,7 +149,7 @@ static bool handleBoostTest(QFutureInterface<TestParseResultPtr> futureInterface
|
|||||||
firstSuite = suitesStates.first();
|
firstSuite = suitesStates.first();
|
||||||
suites = firstSuite.fullName.split('/');
|
suites = firstSuite.fullName.split('/');
|
||||||
BoostTestParseResult *suiteResult = createParseResult(suites.last(), filePath,
|
BoostTestParseResult *suiteResult = createParseResult(suites.last(), filePath,
|
||||||
projectFile, framework,
|
projectFile, base,
|
||||||
TestTreeItem::TestSuite,
|
TestTreeItem::TestSuite,
|
||||||
firstSuite);
|
firstSuite);
|
||||||
currentSuite->children.append(suiteResult);
|
currentSuite->children.append(suiteResult);
|
||||||
@@ -161,7 +162,7 @@ static bool handleBoostTest(QFutureInterface<TestParseResultPtr> futureInterface
|
|||||||
locationAndType.m_suitesState.last().fullName + "::" + locationAndType.m_name,
|
locationAndType.m_suitesState.last().fullName + "::" + locationAndType.m_name,
|
||||||
locationAndType.m_state, locationAndType.m_line};
|
locationAndType.m_state, locationAndType.m_line};
|
||||||
BoostTestParseResult *funcResult = createParseResult(locationAndType.m_name, filePath,
|
BoostTestParseResult *funcResult = createParseResult(locationAndType.m_name, filePath,
|
||||||
projectFile, framework,
|
projectFile, base,
|
||||||
locationAndType.m_type,
|
locationAndType.m_type,
|
||||||
tmpInfo);
|
tmpInfo);
|
||||||
currentSuite->children.append(funcResult);
|
currentSuite->children.append(funcResult);
|
||||||
|
@@ -34,7 +34,7 @@ namespace Internal {
|
|||||||
class BoostTestParseResult : public TestParseResult
|
class BoostTestParseResult : public TestParseResult
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit BoostTestParseResult(ITestFramework *framework) : TestParseResult(framework) {}
|
explicit BoostTestParseResult(ITestBase *base) : TestParseResult(base) {}
|
||||||
TestTreeItem *createTestTreeItem() const override;
|
TestTreeItem *createTestTreeItem() const override;
|
||||||
// TODO special attributes/states (labeled, timeout,...?)
|
// TODO special attributes/states (labeled, timeout,...?)
|
||||||
BoostTestTreeItem::TestStates state = BoostTestTreeItem::Enabled;
|
BoostTestTreeItem::TestStates state = BoostTestTreeItem::Enabled;
|
||||||
|
@@ -26,6 +26,7 @@
|
|||||||
#include "boosttesttreeitem.h"
|
#include "boosttesttreeitem.h"
|
||||||
#include "boosttestconstants.h"
|
#include "boosttestconstants.h"
|
||||||
#include "boosttestconfiguration.h"
|
#include "boosttestconfiguration.h"
|
||||||
|
#include "boosttestframework.h"
|
||||||
#include "boosttestparser.h"
|
#include "boosttestparser.h"
|
||||||
#include "../testframeworkmanager.h"
|
#include "../testframeworkmanager.h"
|
||||||
|
|
||||||
@@ -74,7 +75,7 @@ TestTreeItem *BoostTestTreeItem::find(const TestParseResult *result)
|
|||||||
|
|
||||||
switch (type()) {
|
switch (type()) {
|
||||||
case Root:
|
case Root:
|
||||||
if (result->framework->grouping()) {
|
if (static_cast<BoostTestFramework *>(result->base)->grouping()) {
|
||||||
const QFileInfo fileInfo(bResult->fileName);
|
const QFileInfo fileInfo(bResult->fileName);
|
||||||
const QFileInfo base(fileInfo.absolutePath());
|
const QFileInfo base(fileInfo.absolutePath());
|
||||||
for (int row = 0; row < childCount(); ++row) {
|
for (int row = 0; row < childCount(); ++row) {
|
||||||
|
@@ -48,11 +48,11 @@ public:
|
|||||||
Q_FLAGS(TestState)
|
Q_FLAGS(TestState)
|
||||||
Q_DECLARE_FLAGS(TestStates, TestState)
|
Q_DECLARE_FLAGS(TestStates, TestState)
|
||||||
|
|
||||||
explicit BoostTestTreeItem(ITestFramework *framework,
|
explicit BoostTestTreeItem(ITestBase *base,
|
||||||
const QString &name = QString(),
|
const QString &name = QString(),
|
||||||
const QString &filePath = QString(),
|
const QString &filePath = QString(),
|
||||||
Type type = Root)
|
Type type = Root)
|
||||||
: TestTreeItem(framework, name, filePath, type)
|
: TestTreeItem(base, name, filePath, type)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@@ -25,6 +25,7 @@
|
|||||||
#include "catchtestparser.h"
|
#include "catchtestparser.h"
|
||||||
|
|
||||||
#include "catchcodeparser.h"
|
#include "catchcodeparser.h"
|
||||||
|
#include "catchframework.h"
|
||||||
#include "catchtreeitem.h"
|
#include "catchtreeitem.h"
|
||||||
|
|
||||||
#include <cpptools/cppmodelmanager.h>
|
#include <cpptools/cppmodelmanager.h>
|
||||||
@@ -97,7 +98,7 @@ static bool hasCatchNames(const CPlusPlus::Document::Ptr &document)
|
|||||||
|
|
||||||
static bool handleCatchDocument(QFutureInterface<TestParseResultPtr> futureInterface,
|
static bool handleCatchDocument(QFutureInterface<TestParseResultPtr> futureInterface,
|
||||||
const CPlusPlus::Document::Ptr &doc,
|
const CPlusPlus::Document::Ptr &doc,
|
||||||
ITestFramework *framework)
|
ITestBase *base)
|
||||||
{
|
{
|
||||||
const CppTools::CppModelManager *modelManager = CppTools::CppModelManager::instance();
|
const CppTools::CppModelManager *modelManager = CppTools::CppModelManager::instance();
|
||||||
const QString &filePath = doc->fileName();
|
const QString &filePath = doc->fileName();
|
||||||
@@ -113,7 +114,7 @@ static bool handleCatchDocument(QFutureInterface<TestParseResultPtr> futureInter
|
|||||||
CatchCodeParser codeParser(fileContent, projectPart->languageFeatures);
|
CatchCodeParser codeParser(fileContent, projectPart->languageFeatures);
|
||||||
const CatchTestCodeLocationList foundTests = codeParser.findTests();
|
const CatchTestCodeLocationList foundTests = codeParser.findTests();
|
||||||
|
|
||||||
CatchParseResult *parseResult = new CatchParseResult(framework);
|
CatchParseResult *parseResult = new CatchParseResult(base);
|
||||||
parseResult->itemType = TestTreeItem::TestSuite;
|
parseResult->itemType = TestTreeItem::TestSuite;
|
||||||
parseResult->fileName = filePath;
|
parseResult->fileName = filePath;
|
||||||
parseResult->name = filePath;
|
parseResult->name = filePath;
|
||||||
@@ -121,7 +122,7 @@ static bool handleCatchDocument(QFutureInterface<TestParseResultPtr> futureInter
|
|||||||
parseResult->proFile = projectParts.first()->projectFile;
|
parseResult->proFile = projectParts.first()->projectFile;
|
||||||
|
|
||||||
for (const CatchTestCodeLocationAndType & testLocation : foundTests) {
|
for (const CatchTestCodeLocationAndType & testLocation : foundTests) {
|
||||||
CatchParseResult *testCase = new CatchParseResult(framework);
|
CatchParseResult *testCase = new CatchParseResult(base);
|
||||||
testCase->fileName = filePath;
|
testCase->fileName = filePath;
|
||||||
testCase->name = testLocation.m_name;
|
testCase->name = testLocation.m_name;
|
||||||
testCase->proFile = proFile;
|
testCase->proFile = proFile;
|
||||||
@@ -152,7 +153,7 @@ TestTreeItem *CatchParseResult::createTestTreeItem() const
|
|||||||
if (itemType == TestTreeItem::Root)
|
if (itemType == TestTreeItem::Root)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
CatchTreeItem *item = new CatchTreeItem(framework, name, fileName, itemType);
|
CatchTreeItem *item = new CatchTreeItem(base, name, fileName, itemType);
|
||||||
item->setProFile(proFile);
|
item->setProFile(proFile);
|
||||||
item->setLine(line);
|
item->setLine(line);
|
||||||
item->setColumn(column);
|
item->setColumn(column);
|
||||||
|
@@ -33,8 +33,8 @@ namespace Internal {
|
|||||||
class CatchParseResult : public TestParseResult
|
class CatchParseResult : public TestParseResult
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit CatchParseResult(ITestFramework *framework)
|
explicit CatchParseResult(ITestBase *base)
|
||||||
: TestParseResult(framework) {}
|
: TestParseResult(base) {}
|
||||||
TestTreeItem *createTestTreeItem() const override;
|
TestTreeItem *createTestTreeItem() const override;
|
||||||
CatchTreeItem::TestStates states;
|
CatchTreeItem::TestStates states;
|
||||||
};
|
};
|
||||||
|
@@ -86,7 +86,7 @@ TestTreeItem *CatchTreeItem::find(const TestParseResult *result)
|
|||||||
|
|
||||||
switch (type()) {
|
switch (type()) {
|
||||||
case Root:
|
case Root:
|
||||||
if (result->framework->grouping()) {
|
if (static_cast<CatchFramework *>(result->base)->grouping()) {
|
||||||
const QString path = QFileInfo(result->fileName).absolutePath();
|
const QString path = QFileInfo(result->fileName).absolutePath();
|
||||||
for (int row = 0; row < childCount(); ++row) {
|
for (int row = 0; row < childCount(); ++row) {
|
||||||
TestTreeItem *group = childAt(row);
|
TestTreeItem *group = childAt(row);
|
||||||
|
@@ -41,9 +41,9 @@ public:
|
|||||||
Q_FLAGS(TestState)
|
Q_FLAGS(TestState)
|
||||||
Q_DECLARE_FLAGS(TestStates, TestState)
|
Q_DECLARE_FLAGS(TestStates, TestState)
|
||||||
|
|
||||||
explicit CatchTreeItem(ITestFramework *framework, const QString &name = QString(),
|
explicit CatchTreeItem(ITestBase *testBase, const QString &name = QString(),
|
||||||
const QString &filePath = QString(), Type type = Root)
|
const QString &filePath = QString(), Type type = Root)
|
||||||
: TestTreeItem(framework, name, filePath, type) {}
|
: TestTreeItem(testBase, name, filePath, type) {}
|
||||||
|
|
||||||
void setStates(CatchTreeItem::TestStates state) { m_state = state; }
|
void setStates(CatchTreeItem::TestStates state) { m_state = state; }
|
||||||
CatchTreeItem::TestStates states() const { return m_state; }
|
CatchTreeItem::TestStates states() const { return m_state; }
|
||||||
|
@@ -24,6 +24,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "gtestparser.h"
|
#include "gtestparser.h"
|
||||||
|
#include "gtestframework.h"
|
||||||
#include "gtesttreeitem.h"
|
#include "gtesttreeitem.h"
|
||||||
#include "gtestvisitors.h"
|
#include "gtestvisitors.h"
|
||||||
#include "gtest_utils.h"
|
#include "gtest_utils.h"
|
||||||
@@ -38,7 +39,7 @@ TestTreeItem *GTestParseResult::createTestTreeItem() const
|
|||||||
{
|
{
|
||||||
if (itemType != TestTreeItem::TestSuite && itemType != TestTreeItem::TestCase)
|
if (itemType != TestTreeItem::TestSuite && itemType != TestTreeItem::TestCase)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
GTestTreeItem *item = new GTestTreeItem(framework, name, fileName, itemType);
|
GTestTreeItem *item = new GTestTreeItem(base, name, fileName, itemType);
|
||||||
item->setProFile(proFile);
|
item->setProFile(proFile);
|
||||||
item->setLine(line);
|
item->setLine(line);
|
||||||
item->setColumn(column);
|
item->setColumn(column);
|
||||||
@@ -89,7 +90,7 @@ static bool hasGTestNames(const CPlusPlus::Document::Ptr &document)
|
|||||||
static bool handleGTest(QFutureInterface<TestParseResultPtr> futureInterface,
|
static bool handleGTest(QFutureInterface<TestParseResultPtr> futureInterface,
|
||||||
const CPlusPlus::Document::Ptr &doc,
|
const CPlusPlus::Document::Ptr &doc,
|
||||||
const CPlusPlus::Snapshot &snapshot,
|
const CPlusPlus::Snapshot &snapshot,
|
||||||
ITestFramework *framework)
|
ITestBase *base)
|
||||||
{
|
{
|
||||||
const CppTools::CppModelManager *modelManager = CppTools::CppModelManager::instance();
|
const CppTools::CppModelManager *modelManager = CppTools::CppModelManager::instance();
|
||||||
const QString &filePath = doc->fileName();
|
const QString &filePath = doc->fileName();
|
||||||
@@ -109,7 +110,7 @@ static bool handleGTest(QFutureInterface<TestParseResultPtr> futureInterface,
|
|||||||
return false; // happens if shutting down while parsing
|
return false; // happens if shutting down while parsing
|
||||||
|
|
||||||
for (const GTestCaseSpec &testSpec : result.keys()) {
|
for (const GTestCaseSpec &testSpec : result.keys()) {
|
||||||
GTestParseResult *parseResult = new GTestParseResult(framework);
|
GTestParseResult *parseResult = new GTestParseResult(base);
|
||||||
parseResult->itemType = TestTreeItem::TestSuite;
|
parseResult->itemType = TestTreeItem::TestSuite;
|
||||||
parseResult->fileName = filePath;
|
parseResult->fileName = filePath;
|
||||||
parseResult->name = testSpec.testCaseName;
|
parseResult->name = testSpec.testCaseName;
|
||||||
@@ -119,7 +120,7 @@ static bool handleGTest(QFutureInterface<TestParseResultPtr> futureInterface,
|
|||||||
parseResult->proFile = proFile;
|
parseResult->proFile = proFile;
|
||||||
|
|
||||||
for (const GTestCodeLocationAndType &location : result.value(testSpec)) {
|
for (const GTestCodeLocationAndType &location : result.value(testSpec)) {
|
||||||
GTestParseResult *testSet = new GTestParseResult(framework);
|
GTestParseResult *testSet = new GTestParseResult(base);
|
||||||
testSet->name = location.m_name;
|
testSet->name = location.m_name;
|
||||||
testSet->fileName = filePath;
|
testSet->fileName = filePath;
|
||||||
testSet->line = location.m_line;
|
testSet->line = location.m_line;
|
||||||
|
@@ -33,7 +33,7 @@ namespace Internal {
|
|||||||
class GTestParseResult : public TestParseResult
|
class GTestParseResult : public TestParseResult
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit GTestParseResult(ITestFramework *framework) : TestParseResult(framework) {}
|
explicit GTestParseResult(ITestBase *base) : TestParseResult(base) {}
|
||||||
TestTreeItem *createTestTreeItem() const override;
|
TestTreeItem *createTestTreeItem() const override;
|
||||||
bool parameterized = false;
|
bool parameterized = false;
|
||||||
bool typed = false;
|
bool typed = false;
|
||||||
|
@@ -377,7 +377,7 @@ TestTreeItem *GTestTreeItem::find(const TestParseResult *result)
|
|||||||
states |= GTestTreeItem::Typed;
|
states |= GTestTreeItem::Typed;
|
||||||
switch (type()) {
|
switch (type()) {
|
||||||
case Root:
|
case Root:
|
||||||
if (result->framework->grouping()) {
|
if (static_cast<GTestFramework *>(result->base)->grouping()) {
|
||||||
if (GTestFramework::groupMode() == GTest::Constants::Directory) {
|
if (GTestFramework::groupMode() == GTest::Constants::Directory) {
|
||||||
const QFileInfo fileInfo(parseResult->fileName);
|
const QFileInfo fileInfo(parseResult->fileName);
|
||||||
const QFileInfo base(fileInfo.absolutePath());
|
const QFileInfo base(fileInfo.absolutePath());
|
||||||
|
@@ -46,11 +46,11 @@ public:
|
|||||||
Q_FLAGS(TestState)
|
Q_FLAGS(TestState)
|
||||||
Q_DECLARE_FLAGS(TestStates, TestState)
|
Q_DECLARE_FLAGS(TestStates, TestState)
|
||||||
|
|
||||||
explicit GTestTreeItem(ITestFramework *framework,
|
explicit GTestTreeItem(ITestBase *testBase,
|
||||||
const QString &name = QString(),
|
const QString &name = QString(),
|
||||||
const QString &filePath = QString(),
|
const QString &filePath = QString(),
|
||||||
Type type = Root)
|
Type type = Root)
|
||||||
: TestTreeItem(framework, name, filePath, type), m_state(Enabled)
|
: TestTreeItem(testBase, name, filePath, type), m_state(Enabled)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
TestTreeItem *copyWithoutChildren() override;
|
TestTreeItem *copyWithoutChildren() override;
|
||||||
|
@@ -24,7 +24,6 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "itestframework.h"
|
#include "itestframework.h"
|
||||||
#include "itestparser.h"
|
|
||||||
|
|
||||||
namespace Autotest {
|
namespace Autotest {
|
||||||
|
|
||||||
|
@@ -35,18 +35,18 @@
|
|||||||
|
|
||||||
namespace Autotest {
|
namespace Autotest {
|
||||||
|
|
||||||
class ITestFramework;
|
class ITestBase;
|
||||||
|
|
||||||
class TestParseResult
|
class TestParseResult
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit TestParseResult(ITestFramework *framework) : framework(framework) {}
|
explicit TestParseResult(ITestBase *base) : base(base) {}
|
||||||
virtual ~TestParseResult() { qDeleteAll(children); }
|
virtual ~TestParseResult() { qDeleteAll(children); }
|
||||||
|
|
||||||
virtual TestTreeItem *createTestTreeItem() const = 0;
|
virtual TestTreeItem *createTestTreeItem() const = 0;
|
||||||
|
|
||||||
QVector<TestParseResult *> children;
|
QVector<TestParseResult *> children;
|
||||||
ITestFramework *framework;
|
ITestBase *base;
|
||||||
TestTreeItem::Type itemType = TestTreeItem::Root;
|
TestTreeItem::Type itemType = TestTreeItem::Root;
|
||||||
QString displayName;
|
QString displayName;
|
||||||
QString fileName;
|
QString fileName;
|
||||||
|
@@ -24,6 +24,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "qttestparser.h"
|
#include "qttestparser.h"
|
||||||
|
#include "qttestframework.h"
|
||||||
#include "qttesttreeitem.h"
|
#include "qttesttreeitem.h"
|
||||||
#include "qttestvisitors.h"
|
#include "qttestvisitors.h"
|
||||||
#include "qttest_utils.h"
|
#include "qttest_utils.h"
|
||||||
@@ -41,7 +42,7 @@ TestTreeItem *QtTestParseResult::createTestTreeItem() const
|
|||||||
if (itemType == TestTreeItem::Root)
|
if (itemType == TestTreeItem::Root)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
QtTestTreeItem *item = new QtTestTreeItem(framework, displayName, fileName, itemType);
|
QtTestTreeItem *item = new QtTestTreeItem(base, displayName, fileName, itemType);
|
||||||
item->setProFile(proFile);
|
item->setProFile(proFile);
|
||||||
item->setLine(line);
|
item->setLine(line);
|
||||||
item->setColumn(column);
|
item->setColumn(column);
|
||||||
@@ -284,7 +285,7 @@ static bool handleQtTest(QFutureInterface<TestParseResultPtr> futureInterface,
|
|||||||
const CPlusPlus::Snapshot &snapshot,
|
const CPlusPlus::Snapshot &snapshot,
|
||||||
const QString &oldTestCaseName,
|
const QString &oldTestCaseName,
|
||||||
const QStringList &alternativeFiles,
|
const QStringList &alternativeFiles,
|
||||||
ITestFramework *framework)
|
ITestBase *base)
|
||||||
{
|
{
|
||||||
const CppTools::CppModelManager *modelManager = CppTools::CppModelManager::instance();
|
const CppTools::CppModelManager *modelManager = CppTools::CppModelManager::instance();
|
||||||
const QString &fileName = document->fileName();
|
const QString &fileName = document->fileName();
|
||||||
@@ -321,7 +322,7 @@ static bool handleQtTest(QFutureInterface<TestParseResultPtr> futureInterface,
|
|||||||
for (const QString &file : files)
|
for (const QString &file : files)
|
||||||
Utils::addToHash(&dataTags, checkForDataTags(file, snapshot));
|
Utils::addToHash(&dataTags, checkForDataTags(file, snapshot));
|
||||||
|
|
||||||
QtTestParseResult *parseResult = new QtTestParseResult(framework);
|
QtTestParseResult *parseResult = new QtTestParseResult(base);
|
||||||
parseResult->itemType = TestTreeItem::TestCase;
|
parseResult->itemType = TestTreeItem::TestCase;
|
||||||
parseResult->fileName = declaringDoc->fileName();
|
parseResult->fileName = declaringDoc->fileName();
|
||||||
parseResult->name = testCaseName;
|
parseResult->name = testCaseName;
|
||||||
@@ -338,7 +339,7 @@ static bool handleQtTest(QFutureInterface<TestParseResultPtr> futureInterface,
|
|||||||
const QtTestCodeLocationAndType &location = it.value();
|
const QtTestCodeLocationAndType &location = it.value();
|
||||||
QString functionName = it.key();
|
QString functionName = it.key();
|
||||||
functionName = functionName.mid(functionName.lastIndexOf(':') + 1);
|
functionName = functionName.mid(functionName.lastIndexOf(':') + 1);
|
||||||
QtTestParseResult *func = new QtTestParseResult(framework);
|
QtTestParseResult *func = new QtTestParseResult(base);
|
||||||
func->itemType = location.m_type;
|
func->itemType = location.m_type;
|
||||||
func->name = testCaseName + "::" + functionName;
|
func->name = testCaseName + "::" + functionName;
|
||||||
func->displayName = functionName;
|
func->displayName = functionName;
|
||||||
@@ -349,7 +350,7 @@ static bool handleQtTest(QFutureInterface<TestParseResultPtr> futureInterface,
|
|||||||
|
|
||||||
const QtTestCodeLocationList &tagLocations = tagLocationsFor(func, dataTags);
|
const QtTestCodeLocationList &tagLocations = tagLocationsFor(func, dataTags);
|
||||||
for (const QtTestCodeLocationAndType &tag : tagLocations) {
|
for (const QtTestCodeLocationAndType &tag : tagLocations) {
|
||||||
QtTestParseResult *dataTag = new QtTestParseResult(framework);
|
QtTestParseResult *dataTag = new QtTestParseResult(base);
|
||||||
dataTag->itemType = tag.m_type;
|
dataTag->itemType = tag.m_type;
|
||||||
dataTag->name = tag.m_name;
|
dataTag->name = tag.m_name;
|
||||||
dataTag->displayName = tag.m_name;
|
dataTag->displayName = tag.m_name;
|
||||||
|
@@ -33,7 +33,7 @@ namespace Internal {
|
|||||||
class QtTestParseResult : public TestParseResult
|
class QtTestParseResult : public TestParseResult
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit QtTestParseResult(ITestFramework *framework) : TestParseResult(framework) {}
|
explicit QtTestParseResult(ITestBase *base) : TestParseResult(base) {}
|
||||||
void setInherited(bool inherited) { m_inherited = inherited; }
|
void setInherited(bool inherited) { m_inherited = inherited; }
|
||||||
bool inherited() const { return m_inherited; }
|
bool inherited() const { return m_inherited; }
|
||||||
TestTreeItem *createTestTreeItem() const override;
|
TestTreeItem *createTestTreeItem() const override;
|
||||||
|
@@ -26,7 +26,7 @@
|
|||||||
#include "qttesttreeitem.h"
|
#include "qttesttreeitem.h"
|
||||||
#include "qttestconfiguration.h"
|
#include "qttestconfiguration.h"
|
||||||
#include "qttestparser.h"
|
#include "qttestparser.h"
|
||||||
#include "../testframeworkmanager.h"
|
#include "qttestframework.h"
|
||||||
|
|
||||||
#include <projectexplorer/session.h>
|
#include <projectexplorer/session.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
@@ -34,9 +34,9 @@
|
|||||||
namespace Autotest {
|
namespace Autotest {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
QtTestTreeItem::QtTestTreeItem(ITestFramework *framework, const QString &name,
|
QtTestTreeItem::QtTestTreeItem(ITestBase *testBase, const QString &name,
|
||||||
const QString &filePath, TestTreeItem::Type type)
|
const QString &filePath, TestTreeItem::Type type)
|
||||||
: TestTreeItem(framework, name, filePath, type)
|
: TestTreeItem(testBase, name, filePath, type)
|
||||||
{
|
{
|
||||||
if (type == TestDataTag)
|
if (type == TestDataTag)
|
||||||
setData(0, Qt::Checked, Qt::CheckStateRole);
|
setData(0, Qt::Checked, Qt::CheckStateRole);
|
||||||
@@ -311,7 +311,7 @@ TestTreeItem *QtTestTreeItem::find(const TestParseResult *result)
|
|||||||
|
|
||||||
switch (type()) {
|
switch (type()) {
|
||||||
case Root:
|
case Root:
|
||||||
if (result->framework->grouping()) {
|
if (static_cast<QtTestFramework *>(result->base)->grouping()) {
|
||||||
const QString path = QFileInfo(result->fileName).absolutePath();
|
const QString path = QFileInfo(result->fileName).absolutePath();
|
||||||
for (int row = 0; row < childCount(); ++row) {
|
for (int row = 0; row < childCount(); ++row) {
|
||||||
TestTreeItem *group = childAt(row);
|
TestTreeItem *group = childAt(row);
|
||||||
|
@@ -33,8 +33,8 @@ namespace Internal {
|
|||||||
class QtTestTreeItem : public TestTreeItem
|
class QtTestTreeItem : public TestTreeItem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit QtTestTreeItem(ITestFramework *framework, const QString &name = QString(), const QString &filePath = QString(),
|
explicit QtTestTreeItem(ITestBase *framework, const QString &name = QString(),
|
||||||
Type type = Root);
|
const QString &filePath = QString(), Type type = Root);
|
||||||
|
|
||||||
TestTreeItem *copyWithoutChildren() override;
|
TestTreeItem *copyWithoutChildren() override;
|
||||||
QVariant data(int column, int role) const override;
|
QVariant data(int column, int role) const override;
|
||||||
|
@@ -24,6 +24,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "quicktestparser.h"
|
#include "quicktestparser.h"
|
||||||
|
#include "quicktestframework.h"
|
||||||
#include "quicktesttreeitem.h"
|
#include "quicktesttreeitem.h"
|
||||||
#include "quicktestvisitors.h"
|
#include "quicktestvisitors.h"
|
||||||
#include "quicktest_utils.h"
|
#include "quicktest_utils.h"
|
||||||
@@ -49,7 +50,7 @@ TestTreeItem *QuickTestParseResult::createTestTreeItem() const
|
|||||||
if (itemType == TestTreeItem::Root || itemType == TestTreeItem::TestDataTag)
|
if (itemType == TestTreeItem::Root || itemType == TestTreeItem::TestDataTag)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
QuickTestTreeItem *item = new QuickTestTreeItem(framework, name, fileName, itemType);
|
QuickTestTreeItem *item = new QuickTestTreeItem(base, name, fileName, itemType);
|
||||||
item->setProFile(proFile);
|
item->setProFile(proFile);
|
||||||
item->setLine(line);
|
item->setLine(line);
|
||||||
item->setColumn(column);
|
item->setColumn(column);
|
||||||
|
@@ -37,7 +37,7 @@ namespace Internal {
|
|||||||
class QuickTestParseResult : public TestParseResult
|
class QuickTestParseResult : public TestParseResult
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit QuickTestParseResult(ITestFramework *framework) : TestParseResult(framework) {}
|
explicit QuickTestParseResult(ITestBase *base) : TestParseResult(base) {}
|
||||||
TestTreeItem *createTestTreeItem() const override;
|
TestTreeItem *createTestTreeItem() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -290,7 +290,7 @@ TestTreeItem *QuickTestTreeItem::find(const TestParseResult *result)
|
|||||||
case Root:
|
case Root:
|
||||||
if (result->name.isEmpty())
|
if (result->name.isEmpty())
|
||||||
return unnamedQuickTests();
|
return unnamedQuickTests();
|
||||||
if (result->framework->grouping()) {
|
if (static_cast<QuickTestFramework *>(result->base)->grouping()) {
|
||||||
const QString path = QFileInfo(result->fileName).absolutePath();
|
const QString path = QFileInfo(result->fileName).absolutePath();
|
||||||
TestTreeItem *group = findFirstLevelChild([path](TestTreeItem *group) {
|
TestTreeItem *group = findFirstLevelChild([path](TestTreeItem *group) {
|
||||||
return group->filePath() == path;
|
return group->filePath() == path;
|
||||||
|
@@ -33,11 +33,11 @@ namespace Internal {
|
|||||||
class QuickTestTreeItem : public TestTreeItem
|
class QuickTestTreeItem : public TestTreeItem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit QuickTestTreeItem(ITestFramework *framework,
|
explicit QuickTestTreeItem(ITestBase *testBase,
|
||||||
const QString &name = QString(),
|
const QString &name = QString(),
|
||||||
const QString &filePath = QString(),
|
const QString &filePath = QString(),
|
||||||
Type type = Root)
|
Type type = Root)
|
||||||
: TestTreeItem(framework, name, filePath, type)
|
: TestTreeItem(testBase, name, filePath, type)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
TestTreeItem *copyWithoutChildren() override;
|
TestTreeItem *copyWithoutChildren() override;
|
||||||
|
@@ -24,6 +24,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "autotestconstants.h"
|
#include "autotestconstants.h"
|
||||||
|
#include "itestframework.h"
|
||||||
#include "itestparser.h"
|
#include "itestparser.h"
|
||||||
#include "testconfiguration.h"
|
#include "testconfiguration.h"
|
||||||
#include "testtreeitem.h"
|
#include "testtreeitem.h"
|
||||||
@@ -38,9 +39,9 @@
|
|||||||
|
|
||||||
namespace Autotest {
|
namespace Autotest {
|
||||||
|
|
||||||
TestTreeItem::TestTreeItem(ITestFramework *framework, const QString &name,
|
TestTreeItem::TestTreeItem(ITestBase *testBase, const QString &name,
|
||||||
const QString &filePath, Type type)
|
const QString &filePath, Type type)
|
||||||
: m_framework(framework),
|
: m_testBase(testBase),
|
||||||
m_name(name),
|
m_name(name),
|
||||||
m_filePath(filePath),
|
m_filePath(filePath),
|
||||||
m_type(type)
|
m_type(type)
|
||||||
@@ -369,7 +370,7 @@ inline bool TestTreeItem::modifyName(const QString &name)
|
|||||||
|
|
||||||
ITestFramework *TestTreeItem::framework() const
|
ITestFramework *TestTreeItem::framework() const
|
||||||
{
|
{
|
||||||
return m_framework;
|
return static_cast<ITestFramework *>(m_testBase);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -47,6 +47,7 @@ namespace Utils { class FilePath; }
|
|||||||
|
|
||||||
namespace Autotest {
|
namespace Autotest {
|
||||||
|
|
||||||
|
class ITestBase;
|
||||||
class ITestFramework;
|
class ITestFramework;
|
||||||
class TestConfiguration;
|
class TestConfiguration;
|
||||||
class TestParseResult;
|
class TestParseResult;
|
||||||
@@ -73,7 +74,7 @@ public:
|
|||||||
Naturally
|
Naturally
|
||||||
};
|
};
|
||||||
|
|
||||||
explicit TestTreeItem(ITestFramework *framework,
|
explicit TestTreeItem(ITestBase *testBase,
|
||||||
const QString &name = QString(),
|
const QString &name = QString(),
|
||||||
const QString &filePath = QString(),
|
const QString &filePath = QString(),
|
||||||
Type type = Root);
|
Type type = Root);
|
||||||
@@ -154,7 +155,7 @@ private:
|
|||||||
Cleared
|
Cleared
|
||||||
};
|
};
|
||||||
|
|
||||||
ITestFramework *m_framework = nullptr;
|
ITestBase *m_testBase = nullptr;
|
||||||
QString m_name;
|
QString m_name;
|
||||||
QString m_filePath;
|
QString m_filePath;
|
||||||
Qt::CheckState m_checked;
|
Qt::CheckState m_checked;
|
||||||
|
@@ -514,7 +514,7 @@ void TestTreeModel::revalidateCheckState(TestTreeItem *item)
|
|||||||
|
|
||||||
void TestTreeModel::onParseResultReady(const TestParseResultPtr result)
|
void TestTreeModel::onParseResultReady(const TestParseResultPtr result)
|
||||||
{
|
{
|
||||||
TestTreeItem *rootNode = result->framework->rootNode();
|
TestTreeItem *rootNode = result->base->rootNode();
|
||||||
QTC_ASSERT(rootNode, return);
|
QTC_ASSERT(rootNode, return);
|
||||||
handleParseResult(result.data(), rootNode);
|
handleParseResult(result.data(), rootNode);
|
||||||
}
|
}
|
||||||
@@ -536,7 +536,7 @@ void Autotest::TestTreeModel::onDataChanged(const QModelIndex &topLeft,
|
|||||||
|
|
||||||
void TestTreeModel::handleParseResult(const TestParseResult *result, TestTreeItem *parentNode)
|
void TestTreeModel::handleParseResult(const TestParseResult *result, TestTreeItem *parentNode)
|
||||||
{
|
{
|
||||||
const bool groupingEnabled = result->framework->grouping();
|
const bool groupingEnabled = static_cast<ITestFramework *>(result->base)->grouping();
|
||||||
// lookup existing items
|
// lookup existing items
|
||||||
if (TestTreeItem *toBeModified = parentNode->find(result)) {
|
if (TestTreeItem *toBeModified = parentNode->find(result)) {
|
||||||
// found existing item... Do not remove
|
// found existing item... Do not remove
|
||||||
|
Reference in New Issue
Block a user