aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/autotest/testrunner.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/autotest/testrunner.cpp')
-rw-r--r--src/plugins/autotest/testrunner.cpp53
1 files changed, 26 insertions, 27 deletions
diff --git a/src/plugins/autotest/testrunner.cpp b/src/plugins/autotest/testrunner.cpp
index 0b774c6c7a5..57574012ec4 100644
--- a/src/plugins/autotest/testrunner.cpp
+++ b/src/plugins/autotest/testrunner.cpp
@@ -77,8 +77,7 @@ TestRunner *TestRunner::instance()
}
TestRunner::TestRunner(QObject *parent) :
- QObject(parent),
- m_executingTests(false)
+ QObject(parent)
{
connect(&m_futureWatcher, &QFutureWatcher<TestResultPtr>::resultReadyAt,
this, [this](int index) { emit testResultReady(m_futureWatcher.resultAt(index)); });
@@ -329,17 +328,14 @@ void TestRunner::prepareToRunTests(TestRunMode mode)
}
}
-static QString firstTestCaseTarget(const TestConfiguration *config)
+static QString firstNonEmptyTestCaseTarget(const TestConfiguration *config)
{
- for (const QString &internalTarget : config->internalTargets()) {
- const QString buildTarget = internalTarget.split('|').first();
- if (!buildTarget.isEmpty())
- return buildTarget;
- }
- return QString();
+ return Utils::findOrDefault(config->internalTargets(), [](const QString &internalTarget) {
+ return !internalTarget.isEmpty();
+ });
}
-static ProjectExplorer::RunConfiguration *getRunConfiguration(const QString &dialogDetail)
+static ProjectExplorer::RunConfiguration *getRunConfiguration(const QString &buildTargetKey)
{
using namespace ProjectExplorer;
const Project *project = SessionManager::startupProject();
@@ -357,7 +353,7 @@ static ProjectExplorer::RunConfiguration *getRunConfiguration(const QString &dia
if (runConfigurations.size() == 1)
return runConfigurations.first();
- RunConfigurationSelectionDialog dialog(dialogDetail, Core::ICore::dialogParent());
+ RunConfigurationSelectionDialog dialog(buildTargetKey, Core::ICore::dialogParent());
if (dialog.exec() == QDialog::Accepted) {
const QString dName = dialog.displayName();
if (dName.isEmpty())
@@ -409,7 +405,7 @@ void TestRunner::runTests()
projectChanged = true;
toBeRemoved.append(config);
} else if (!config->hasExecutable()) {
- if (auto rc = getRunConfiguration(firstTestCaseTarget(config)))
+ if (auto rc = getRunConfiguration(firstNonEmptyTestCaseTarget(config)))
config->setOriginalRunConfiguration(rc);
else
toBeRemoved.append(config);
@@ -483,7 +479,7 @@ void TestRunner::debugTests()
return;
}
if (!config->hasExecutable()) {
- if (auto *rc = getRunConfiguration(firstTestCaseTarget(config)))
+ if (auto *rc = getRunConfiguration(firstNonEmptyTestCaseTarget(config)))
config->completeTestInformation(rc, TestRunMode::Debug);
}
@@ -571,15 +567,14 @@ void TestRunner::runOrDebugTests()
case TestRunMode::Run:
case TestRunMode::RunWithoutDeploy:
runTests();
- break;
+ return;
case TestRunMode::Debug:
case TestRunMode::DebugWithoutDeploy:
debugTests();
- break;
- default:
- onFinished();
- QTC_ASSERT(false, return); // unexpected run mode
+ return;
}
+ onFinished();
+ QTC_ASSERT(false, return); // unexpected run mode
}
void TestRunner::buildProject(ProjectExplorer::Project *project)
@@ -628,7 +623,15 @@ void TestRunner::onFinished()
/*************************************************************************************************/
-RunConfigurationSelectionDialog::RunConfigurationSelectionDialog(const QString &testsInfo,
+static QFrame *createLine(QWidget *parent)
+{
+ QFrame *line = new QFrame(parent);
+ line->setFrameShape(QFrame::HLine);
+ line->setFrameShadow(QFrame::Sunken);
+ return line;
+}
+
+RunConfigurationSelectionDialog::RunConfigurationSelectionDialog(const QString &buildTargetKey,
QWidget *parent)
: QDialog(parent)
{
@@ -636,8 +639,8 @@ RunConfigurationSelectionDialog::RunConfigurationSelectionDialog(const QString &
setWindowTitle(tr("Select Run Configuration"));
QString details = tr("Could not determine which run configuration to choose for running tests");
- if (!testsInfo.isEmpty())
- details.append(QString(" (%1)").arg(testsInfo));
+ if (!buildTargetKey.isEmpty())
+ details.append(QString(" (%1)").arg(buildTargetKey));
m_details = new QLabel(details, this);
m_rcCombo = new QComboBox(this);
m_executable = new QLabel(this);
@@ -647,15 +650,11 @@ RunConfigurationSelectionDialog::RunConfigurationSelectionDialog(const QString &
m_buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);
m_buttonBox->button(QDialogButtonBox::Ok)->setDefault(true);
- auto line = new QFrame(this);
- line->setFrameShape(QFrame::HLine);
- line->setFrameShadow(QFrame::Sunken);
-
auto formLayout = new QFormLayout;
formLayout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow);
formLayout->addRow(m_details);
formLayout->addRow(tr("Run Configuration:"), m_rcCombo);
- formLayout->addRow(line);
+ formLayout->addRow(createLine(this));
formLayout->addRow(tr("Executable:"), m_executable);
formLayout->addRow(tr("Arguments:"), m_arguments);
formLayout->addRow(tr("Working Directory:"), m_workingDir);
@@ -663,7 +662,7 @@ RunConfigurationSelectionDialog::RunConfigurationSelectionDialog(const QString &
auto vboxLayout = new QVBoxLayout(this);
vboxLayout->addLayout(formLayout);
vboxLayout->addStretch();
- vboxLayout->addWidget(line);
+ vboxLayout->addWidget(createLine(this));
vboxLayout->addWidget(m_buttonBox);
connect(m_rcCombo, &QComboBox::currentTextChanged,