diff --git a/src/plugins/autotest/quick/quicktesttreeitem.cpp b/src/plugins/autotest/quick/quicktesttreeitem.cpp index 5274a270993..5c6cf57aa93 100644 --- a/src/plugins/autotest/quick/quicktesttreeitem.cpp +++ b/src/plugins/autotest/quick/quicktesttreeitem.cpp @@ -420,10 +420,8 @@ QSet QuickTestTreeItem::internalTargets() const for (const CppTools::ProjectPart::Ptr &projectPart : projectInfo.projectParts()) { if (projectPart->buildTargetType != ProjectExplorer::BuildTargetType::Executable) continue; - if (projectPart->projectFile == proFile()) { + if (projectPart->projectFile == proFile()) result.insert(projectPart->buildSystemTarget); - break; - } } return result; } diff --git a/src/plugins/autotest/testconfiguration.cpp b/src/plugins/autotest/testconfiguration.cpp index 96a5a842dbf..c5ff9202604 100644 --- a/src/plugins/autotest/testconfiguration.cpp +++ b/src/plugins/autotest/testconfiguration.cpp @@ -143,22 +143,23 @@ void TestConfiguration::completeTestInformation(TestRunMode runMode) const QSet buildSystemTargets = m_buildTargets; qCDebug(LOG) << "BuildSystemTargets\n " << buildSystemTargets; - const QList buildTargets = target->buildSystem()->applicationTargets(); - BuildTargetInfo targetInfo - = Utils::findOrDefault(buildTargets, - [&buildSystemTargets] (const BuildTargetInfo &bti) { + const QList buildTargets + = Utils::filtered(target->buildSystem()->applicationTargets(), + [&buildSystemTargets](const BuildTargetInfo &bti) { return buildSystemTargets.contains(bti.buildKey); }); + if (buildTargets.size() > 1 ) // there are multiple executables with the same build target + return; // let the user decide which one to run + + const BuildTargetInfo targetInfo = buildTargets.first(); + // we might end up with an empty targetFilePath - e.g. when having a library we just link to // there would be no BuildTargetInfo that could match if (targetInfo.targetFilePath.isEmpty()) { qCDebug(LOG) << "BuildTargetInfos"; // if there is only one build target just use it (but be honest that we're deducing) - if (buildTargets.size() == 1) { - targetInfo = buildTargets.first(); - m_deducedConfiguration = true; - m_deducedFrom = targetInfo.buildKey; - } + m_deducedConfiguration = true; + m_deducedFrom = targetInfo.buildKey; } const FilePath localExecutable = ensureExeEnding(targetInfo.targetFilePath);