ClangStaticAnalyzer: Use common pattern to access SessionManager

Change-Id: I335b4ffedd679cb14e9502c98513409859e34c8f
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
hjk
2017-02-22 11:53:09 +01:00
parent cb8d0f0678
commit aaf94aac57
2 changed files with 13 additions and 18 deletions

View File

@@ -69,12 +69,11 @@ static bool processEventsUntil(const std::function<bool()> condition, int timeOu
class WaitForParsedProjects : public QObject class WaitForParsedProjects : public QObject
{ {
public: public:
WaitForParsedProjects(ProjectExplorer::SessionManager &sessionManager, WaitForParsedProjects(const QStringList &projects)
const QStringList &projects) : m_projectsToWaitFor(projects)
: m_sessionManager(sessionManager)
, m_projectsToWaitFor(projects)
{ {
connect(&m_sessionManager, &ProjectExplorer::SessionManager::projectFinishedParsing, connect(SessionManager::instance(),
&ProjectExplorer::SessionManager::projectFinishedParsing,
this, &WaitForParsedProjects::onProjectFinishedParsing); this, &WaitForParsedProjects::onProjectFinishedParsing);
} }
@@ -91,7 +90,6 @@ public:
} }
private: private:
ProjectExplorer::SessionManager &m_sessionManager;
QStringList m_projectsToWaitFor; QStringList m_projectsToWaitFor;
}; };
@@ -102,7 +100,6 @@ ClangStaticAnalyzerPreconfiguredSessionTests::ClangStaticAnalyzerPreconfiguredSe
ClangStaticAnalyzerTool *analyzerTool, ClangStaticAnalyzerTool *analyzerTool,
QObject *parent) QObject *parent)
: QObject(parent) : QObject(parent)
, m_sessionManager(*ProjectExplorer::SessionManager::instance())
, m_analyzerTool(*analyzerTool) , m_analyzerTool(*analyzerTool)
{ {
} }
@@ -110,16 +107,16 @@ ClangStaticAnalyzerPreconfiguredSessionTests::ClangStaticAnalyzerPreconfiguredSe
void ClangStaticAnalyzerPreconfiguredSessionTests::initTestCase() void ClangStaticAnalyzerPreconfiguredSessionTests::initTestCase()
{ {
const QString preconfiguredSessionName = QLatin1String("ClangStaticAnalyzerPreconfiguredSession"); const QString preconfiguredSessionName = QLatin1String("ClangStaticAnalyzerPreconfiguredSession");
if (!m_sessionManager.sessions().contains(preconfiguredSessionName)) if (!SessionManager::sessions().contains(preconfiguredSessionName))
QSKIP("Manually preconfigured session 'ClangStaticAnalyzerPreconfiguredSession' needed."); QSKIP("Manually preconfigured session 'ClangStaticAnalyzerPreconfiguredSession' needed.");
if (m_sessionManager.activeSession() == preconfiguredSessionName) if (SessionManager::activeSession() == preconfiguredSessionName)
QSKIP("Session must not be already active."); QSKIP("Session must not be already active.");
// Load session // Load session
const QStringList projects = m_sessionManager.projectsForSessionName(preconfiguredSessionName); const QStringList projects = SessionManager::projectsForSessionName(preconfiguredSessionName);
WaitForParsedProjects waitForParsedProjects(m_sessionManager, projects); WaitForParsedProjects waitForParsedProjects(projects);
QVERIFY(m_sessionManager.loadSession(preconfiguredSessionName)); QVERIFY(SessionManager::loadSession(preconfiguredSessionName));
QVERIFY(waitForParsedProjects.wait()); QVERIFY(waitForParsedProjects.wait());
} }
@@ -206,7 +203,7 @@ void ClangStaticAnalyzerPreconfiguredSessionTests::testPreconfiguredSession_data
bool hasAddedTestData = false; bool hasAddedTestData = false;
foreach (Project *project, validProjects(m_sessionManager.projects())) { foreach (Project *project, validProjects(SessionManager::projects())) {
foreach (Target *target, validTargets(project)) { foreach (Target *target, validTargets(project)) {
hasAddedTestData = true; hasAddedTestData = true;
QTest::newRow(dataTagName(project, target)) << project << target; QTest::newRow(dataTagName(project, target)) << project << target;
@@ -220,17 +217,17 @@ void ClangStaticAnalyzerPreconfiguredSessionTests::testPreconfiguredSession_data
bool ClangStaticAnalyzerPreconfiguredSessionTests::switchToProjectAndTarget(Project *project, bool ClangStaticAnalyzerPreconfiguredSessionTests::switchToProjectAndTarget(Project *project,
Target *target) Target *target)
{ {
Project * const activeProject = m_sessionManager.startupProject(); Project * const activeProject = SessionManager::startupProject();
if (project == activeProject && target == activeProject->activeTarget()) if (project == activeProject && target == activeProject->activeTarget())
return true; // OK, desired project/target already active. return true; // OK, desired project/target already active.
if (project != activeProject) if (project != activeProject)
m_sessionManager.setStartupProject(project); SessionManager::setStartupProject(project);
if (target != project->activeTarget()) { if (target != project->activeTarget()) {
QSignalSpy spyFinishedParsing(ProjectExplorer::SessionManager::instance(), QSignalSpy spyFinishedParsing(ProjectExplorer::SessionManager::instance(),
&ProjectExplorer::SessionManager::projectFinishedParsing); &ProjectExplorer::SessionManager::projectFinishedParsing);
m_sessionManager.setActiveTarget(project, target, ProjectExplorer::SetActive::NoCascade); SessionManager::setActiveTarget(project, target, ProjectExplorer::SetActive::NoCascade);
QTC_ASSERT(spyFinishedParsing.wait(30000), return false); QTC_ASSERT(spyFinishedParsing.wait(30000), return false);
const QVariant projectArgument = spyFinishedParsing.takeFirst().takeFirst(); const QVariant projectArgument = spyFinishedParsing.takeFirst().takeFirst();

View File

@@ -31,7 +31,6 @@
namespace ProjectExplorer { namespace ProjectExplorer {
class Project; class Project;
class Target; class Target;
class SessionManager;
} }
namespace ClangStaticAnalyzer { namespace ClangStaticAnalyzer {
@@ -56,7 +55,6 @@ private:
bool switchToProjectAndTarget(ProjectExplorer::Project *project, bool switchToProjectAndTarget(ProjectExplorer::Project *project,
ProjectExplorer::Target *target); ProjectExplorer::Target *target);
ProjectExplorer::SessionManager &m_sessionManager;
ClangStaticAnalyzerTool &m_analyzerTool; ClangStaticAnalyzerTool &m_analyzerTool;
}; };