From 747346900501ed83c5af85ffe2fbfbd52c59099a Mon Sep 17 00:00:00 2001
From: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Date: Fri, 21 Oct 2016 11:32:39 +0200
Subject: [PATCH] ClangStaticAnalyzer: Tests: Change target only if necessary

...otherwise we wait for nothing.

Change-Id: Ia55d4845f8dd0fe746ee6c8ca19b5312879294d1
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
---
 ...staticanalyzerpreconfiguredsessiontests.cpp | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzerpreconfiguredsessiontests.cpp b/src/plugins/clangstaticanalyzer/clangstaticanalyzerpreconfiguredsessiontests.cpp
index eacaa7f4acd..462e26fe836 100644
--- a/src/plugins/clangstaticanalyzer/clangstaticanalyzerpreconfiguredsessiontests.cpp
+++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzerpreconfiguredsessiontests.cpp
@@ -197,17 +197,19 @@ bool ClangStaticAnalyzerPreconfiguredSessionTests::switchToProjectAndTarget(Proj
     if (project == activeProject && target == activeProject->activeTarget())
         return true; // OK, desired project/target already active.
 
-    QSignalSpy waitUntilProjectUpdated(CppModelManager::instance(),
-                                       &CppModelManager::projectPartsUpdated);
-
     if (project != activeProject)
         m_sessionManager.setStartupProject(project);
-    m_sessionManager.setActiveTarget(project, target, ProjectExplorer::SetActive::NoCascade);
 
-    const bool waitResult = waitUntilProjectUpdated.wait(30000);
-    if (!waitResult) {
-        qWarning() << "waitUntilProjectUpdated() failed";
-        return false;
+    if (target != project->activeTarget()) {
+        QSignalSpy waitUntilProjectUpdated(CppModelManager::instance(),
+                                           &CppModelManager::projectPartsUpdated);
+        m_sessionManager.setActiveTarget(project, target, ProjectExplorer::SetActive::NoCascade);
+
+        const bool waitResult = waitUntilProjectUpdated.wait(30000);
+        if (!waitResult) {
+            qWarning() << "waitUntilProjectUpdated() failed";
+            return false;
+        }
     }
 
     return true;
-- 
GitLab