diff options
author | Eike Ziller <eike.ziller@theqtcompany.com> | 2015-05-07 14:40:11 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@theqtcompany.com> | 2015-05-07 14:40:11 +0200 |
commit | d5956e92ed3eed6dd0d54f7a65a246f4884b0080 (patch) | |
tree | f2ce23d16f36d0681c06726e6607f320dc7a19bd /plugins | |
parent | 1a122c2e251649d78edb0f535222fd4359948ee2 (diff) | |
parent | 59e01e2a89290c0aa4a50d7064bbaade511cc8c3 (diff) | |
download | qt-creator-d5956e92ed3eed6dd0d54f7a65a246f4884b0080.tar.gz |
Merge remote-tracking branch 'origin/3.4'
Conflicts:
plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp
Change-Id: I0362a5bb2a44c2608c2c074df45fffa022446cc4
Diffstat (limited to 'plugins')
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); } |