forked from qt-creator/qt-creator
Clang/ClangTools: Separate custom diagnostic configs
Add a separate pool of custom diagnostic configs for the ClangTools plugin. That is, the diagnostic configs in Menu: Tools > C++ > Code Model are not shared anymore with the configs at Menu: Tools > Analyzer > ClangTools On plugin initialization of ClangTools, move tidy/clazy related configs to ClangTools. Change-Id: Id06087a58b53e466a3d7bbac669550c5fbe9899d Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
@@ -31,10 +31,10 @@
|
||||
#include "clangtoolsutils.h"
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
#include <cpptools/cppcodemodelsettings.h>
|
||||
#include <cpptools/clangdiagnosticconfig.h>
|
||||
#include <cpptools/cppmodelmanager.h>
|
||||
#include <cpptools/cpptoolstestcase.h>
|
||||
#include <cpptools/cpptoolsreuse.h>
|
||||
#include <cpptools/cpptoolstestcase.h>
|
||||
#include <projectexplorer/kitinformation.h>
|
||||
#include <projectexplorer/kitmanager.h>
|
||||
#include <projectexplorer/projectexplorer.h>
|
||||
@@ -62,8 +62,8 @@ void ClangToolsUnitTests::initTestCase()
|
||||
const QList<Kit *> allKits = KitManager::kits();
|
||||
if (allKits.count() != 1)
|
||||
QSKIP("This test requires exactly one kit to be present");
|
||||
const ToolChain * const toolchain = ToolChainKitAspect::toolChain(allKits.first(),
|
||||
Constants::CXX_LANGUAGE_ID);
|
||||
const ToolChain *const toolchain = ToolChainKitAspect::toolChain(allKits.first(),
|
||||
Constants::CXX_LANGUAGE_ID);
|
||||
if (!toolchain)
|
||||
QSKIP("This test requires that there is a kit with a toolchain.");
|
||||
|
||||
@@ -110,25 +110,11 @@ void ClangToolsUnitTests::testProject()
|
||||
Tests::ProjectOpenerAndCloser projectManager;
|
||||
const ProjectInfo projectInfo = projectManager.open(projectFilePath, true);
|
||||
QVERIFY(projectInfo.isValid());
|
||||
|
||||
ClangTool *tool = ClangTool::instance();
|
||||
|
||||
// Change configs
|
||||
QSharedPointer<CppCodeModelSettings> cppToolsSettings = codeModelSettings();
|
||||
ClangToolsSettings *clangToolsSettings = ClangToolsSettings::instance();
|
||||
const ClangDiagnosticConfigs originalConfigs = cppToolsSettings->clangCustomDiagnosticConfigs();
|
||||
|
||||
ClangDiagnosticConfigs modifiedConfigs = originalConfigs;
|
||||
modifiedConfigs.push_back(diagnosticConfig);
|
||||
|
||||
ExecuteOnDestruction restoreCustomConfigs([=]() {
|
||||
cppToolsSettings->setClangCustomDiagnosticConfigs(originalConfigs);
|
||||
});
|
||||
|
||||
cppToolsSettings->setClangCustomDiagnosticConfigs(modifiedConfigs);
|
||||
RunSettings runSettings = clangToolsSettings->runSettings();
|
||||
runSettings.setDiagnosticConfigId(diagnosticConfig.id());
|
||||
|
||||
tool->startTool(runSettings, ClangTool::FileSelection::AllFiles);
|
||||
tool->startTool(ClangTool::FileSelection::AllFiles,
|
||||
ClangToolsSettings::instance()->runSettings(),
|
||||
diagnosticConfig);
|
||||
QSignalSpy waiter(tool, SIGNAL(finished(bool)));
|
||||
QVERIFY(waiter.wait(30000));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user