summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@theqtcompany.com>2015-05-07 14:40:11 +0200
committerEike Ziller <eike.ziller@theqtcompany.com>2015-05-07 14:40:11 +0200
commitd5956e92ed3eed6dd0d54f7a65a246f4884b0080 (patch)
treef2ce23d16f36d0681c06726e6607f320dc7a19bd
parent1a122c2e251649d78edb0f535222fd4359948ee2 (diff)
parent59e01e2a89290c0aa4a50d7064bbaade511cc8c3 (diff)
downloadqt-creator-d5956e92ed3eed6dd0d54f7a65a246f4884b0080.tar.gz
Merge remote-tracking branch 'origin/3.4'
Conflicts: plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp Change-Id: I0362a5bb2a44c2608c2c074df45fffa022446cc4
-rw-r--r--plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp3
-rw-r--r--plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.h3
-rw-r--r--plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp6
-rw-r--r--plugins/clangstaticanalyzer/clangstaticanalyzertool.h2
-rw-r--r--plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp8
5 files changed, 14 insertions, 8 deletions
diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp b/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp
index 1ec5e6d264..6bf9582e37 100644
--- a/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp
+++ b/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp
@@ -233,6 +233,7 @@ static QDebug operator<<(QDebug debug, const AnalyzeUnits &analyzeUnits)
bool ClangStaticAnalyzerRunControl::startEngine()
{
+ m_success = false;
emit starting(this);
QTC_ASSERT(m_projectInfo.isValid(), emit finished(); return false);
@@ -291,6 +292,7 @@ bool ClangStaticAnalyzerRunControl::startEngine()
m_runners.clear();
const int parallelRuns = ClangStaticAnalyzerSettings::instance()->simultaneousProcesses();
QTC_ASSERT(parallelRuns >= 1, emit finished(); return false);
+ m_success = true;
while (m_runners.size() < parallelRuns && !m_unitsToProcess.isEmpty())
analyzeNextFile();
return true;
@@ -390,6 +392,7 @@ void ClangStaticAnalyzerRunControl::onRunnerFinishedWithFailure(const QString &e
qCDebug(LOG) << "onRunnerFinishedWithFailure:" << errorMessage << errorDetails;
++m_filesNotAnalyzed;
+ m_success = false;
const QString filePath = qobject_cast<ClangStaticAnalyzerRunner *>(sender())->filePath();
appendMessage(tr("Failed to analyze \"%1\": %2").arg(filePath, errorMessage)
+ QLatin1Char('\n')
diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.h b/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.h
index 783713535d..7a4729babe 100644
--- a/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.h
+++ b/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.h
@@ -52,6 +52,8 @@ public:
bool startEngine();
void stopEngine();
+ bool success() const { return m_success; } // For testing.
+
signals:
void newDiagnosticsAvailable(const QList<Diagnostic> &diagnostics);
@@ -80,6 +82,7 @@ private:
int m_initialFilesToProcessSize;
int m_filesAnalyzed;
int m_filesNotAnalyzed;
+ bool m_success;
};
} // namespace Internal
diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp b/plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp
index c7a44e46de..38e715dfc1 100644
--- a/plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp
+++ b/plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp
@@ -222,7 +222,7 @@ void ClangStaticAnalyzerTool::startTool()
AnalyzerManager::showMode();
Project *project = SessionManager::startupProject();
- QTC_ASSERT(project, return);
+ QTC_ASSERT(project, emit finished(false); return);
if (dontStartAfterHintForDebugMode(project))
return;
@@ -231,7 +231,7 @@ void ClangStaticAnalyzerTool::startTool()
setBusyCursor(true);
m_diagnosticFilterModel->setProject(project);
m_projectInfoBeforeBuild = CppTools::CppModelManager::instance()->projectInfo(project);
- QTC_ASSERT(m_projectInfoBeforeBuild.isValid(), return);
+ QTC_ASSERT(m_projectInfoBeforeBuild.isValid(), emit finished(false); return);
m_running = true;
handleStateUpdate();
@@ -284,7 +284,7 @@ void ClangStaticAnalyzerTool::onEngineFinished()
resetCursorAndProjectInfoBeforeBuild();
m_running = false;
handleStateUpdate();
- emit finished();
+ emit finished(static_cast<ClangStaticAnalyzerRunControl *>(sender())->success());
}
void ClangStaticAnalyzerTool::setBusyCursor(bool busy)
diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzertool.h b/plugins/clangstaticanalyzer/clangstaticanalyzertool.h
index 4334884c7e..24bf7dbd12 100644
--- a/plugins/clangstaticanalyzer/clangstaticanalyzertool.h
+++ b/plugins/clangstaticanalyzer/clangstaticanalyzertool.h
@@ -57,7 +57,7 @@ public:
void startTool();
signals:
- void finished(); // For testing.
+ void finished(bool success); // For testing.
private:
void onEngineIsStarting();
diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp b/plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp
index 4eed420574..62fb91351b 100644
--- a/plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp
+++ b/plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp
@@ -83,10 +83,10 @@ void ClangStaticAnalyzerUnitTests::testProject()
QVERIFY(projectInfo.isValid());
AnalyzerManager::selectTool(ClangStaticAnalyzerToolId);
AnalyzerManager::startTool();
- if (m_analyzerTool->isRunning()) {
- QSignalSpy waiter(m_analyzerTool, SIGNAL(finished()));
- QVERIFY(waiter.wait(30000));
- }
+ QSignalSpy waiter(m_analyzerTool, SIGNAL(finished(bool)));
+ QVERIFY(waiter.wait(30000));
+ const QList<QVariant> arguments = waiter.takeFirst();
+ QVERIFY(arguments.first().toBool());
QCOMPARE(m_analyzerTool->diagnostics().count(), expectedDiagCount);
}