diff options
Diffstat (limited to 'src/plugins/autotest/testrunner.cpp')
-rw-r--r-- | src/plugins/autotest/testrunner.cpp | 53 |
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, |