forked from qt-creator/qt-creator
ClangStaticAnalyzer: Use common pattern to access SessionManager
Change-Id: I335b4ffedd679cb14e9502c98513409859e34c8f Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
@@ -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();
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user