Commit 6cafc424 authored by Nikolai Kosjar's avatar Nikolai Kosjar Committed by Erik Verbruggen

CppTools: Tests: Stop writing into source dir

Instead, always write into a unique temporary directory in
QDir::tempPath().

Where applicable, read the test source from files instead of first
writing the file.

Some clean ups in test_codegen*.

Change-Id: Id48dc50c6ca16252edfd9fc8a86ba0de9f9be486
Reviewed-by: default avatarChristian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: default avatarErik Verbruggen <erik.verbruggen@theqtcompany.com>
parent cb3c7538
This diff is collapsed.
...@@ -73,8 +73,10 @@ public: ...@@ -73,8 +73,10 @@ public:
m_source[m_position] = ' '; m_source[m_position] = ' ';
// Write source to file // Write source to file
const QString fileName = QDir::tempPath() + QLatin1String("/file.h"); m_temporaryDir.reset(new Tests::TemporaryDir());
QVERIFY(writeFile(fileName, m_source)); QVERIFY(m_temporaryDir->isValid());
const QString fileName = m_temporaryDir->createFile("file.h", m_source);
QVERIFY(!fileName.isEmpty());
// Open in editor // Open in editor
m_editor = EditorManager::openEditor(fileName); m_editor = EditorManager::openEditor(fileName);
...@@ -150,6 +152,7 @@ private: ...@@ -150,6 +152,7 @@ private:
QByteArray m_source; QByteArray m_source;
int m_position; int m_position;
Snapshot m_snapshot; Snapshot m_snapshot;
QScopedPointer<Tests::TemporaryDir> m_temporaryDir;
TextEditorWidget *m_editorWidget; TextEditorWidget *m_editorWidget;
QTextDocument *m_textDocument; QTextDocument *m_textDocument;
IEditor *m_editor; IEditor *m_editor;
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include "cpptoolsplugin.h" #include "cpptoolsplugin.h"
#include "cpptoolsreuse.h" #include "cpptoolsreuse.h"
#include "cpptoolstestcase.h"
#include "cppfilesettingspage.h" #include "cppfilesettingspage.h"
#include <utils/fileutils.h> #include <utils/fileutils.h>
...@@ -60,15 +61,16 @@ void CppToolsPlugin::test_headersource() ...@@ -60,15 +61,16 @@ void CppToolsPlugin::test_headersource()
QFETCH(QString, sourceFileName); QFETCH(QString, sourceFileName);
QFETCH(QString, headerFileName); QFETCH(QString, headerFileName);
bool wasHeader; Tests::TemporaryDir temporaryDir;
const QString baseDir = baseTestDir(); QVERIFY(temporaryDir.isValid());
QDir path = QDir(baseDir + _(QTest::currentDataTag()));
const QDir path = QDir(temporaryDir.path() + QLatin1Char('/') + _(QTest::currentDataTag()));
const QString sourcePath = path.absoluteFilePath(sourceFileName); const QString sourcePath = path.absoluteFilePath(sourceFileName);
const QString headerPath = path.absoluteFilePath(headerFileName); const QString headerPath = path.absoluteFilePath(headerFileName);
createTempFile(sourcePath); createTempFile(sourcePath);
createTempFile(headerPath); createTempFile(headerPath);
bool wasHeader;
clearHeaderSourceCache(); clearHeaderSourceCache();
QCOMPARE(correspondingHeaderOrSource(sourcePath, &wasHeader), headerPath); QCOMPARE(correspondingHeaderOrSource(sourcePath, &wasHeader), headerPath);
QVERIFY(!wasHeader); QVERIFY(!wasHeader);
......
...@@ -46,7 +46,6 @@ ...@@ -46,7 +46,6 @@
#include <QDebug> #include <QDebug>
#include <QFileInfo> #include <QFileInfo>
#include <QTemporaryDir>
#include <QtTest> #include <QtTest>
using namespace CppTools; using namespace CppTools;
...@@ -79,6 +78,15 @@ public: ...@@ -79,6 +78,15 @@ public:
{ return directory(_("sources")) + fileName; } { return directory(_("sources")) + fileName; }
}; };
QStringList toAbsolutePaths(const QStringList &relativePathList,
const Tests::TemporaryCopiedDir &temporaryDir)
{
QStringList result;
foreach (const QString &file, relativePathList)
result << temporaryDir.absolutePath(file.toUtf8());
return result;
}
// TODO: When possible, use this helper class in all tests // TODO: When possible, use this helper class in all tests
class ProjectCreator class ProjectCreator
{ {
...@@ -478,8 +486,14 @@ void CppToolsPlugin::test_modelmanager_refresh_added_and_purge_removed() ...@@ -478,8 +486,14 @@ void CppToolsPlugin::test_modelmanager_refresh_added_and_purge_removed()
void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_change() void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_change()
{ {
QFETCH(QString, fileToChange); QFETCH(QString, fileToChange);
QFETCH(QList<ProjectFile>, initialProjectFiles); QFETCH(QStringList, initialProjectFiles);
QFETCH(QList<ProjectFile>, finalProjectFiles); QFETCH(QStringList, finalProjectFiles);
Tests::TemporaryCopiedDir temporaryDir(
MyTestDataDir(QLatin1String("testdata_refresh2")).path());
fileToChange = temporaryDir.absolutePath(fileToChange.toUtf8());
initialProjectFiles = toAbsolutePaths(initialProjectFiles, temporaryDir);
finalProjectFiles = toAbsolutePaths(finalProjectFiles, temporaryDir);
ModelManagerTestHelper helper; ModelManagerTestHelper helper;
CppModelManager *mm = CppModelManager::instance(); CppModelManager *mm = CppModelManager::instance();
...@@ -490,8 +504,8 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_ ...@@ -490,8 +504,8 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_
ProjectPart::Ptr part(new ProjectPart); ProjectPart::Ptr part(new ProjectPart);
part->languageVersion = ProjectPart::CXX14; part->languageVersion = ProjectPart::CXX14;
part->qtVersion = ProjectPart::Qt5; part->qtVersion = ProjectPart::Qt5;
foreach (const ProjectFile &file, initialProjectFiles) foreach (const QString &file, initialProjectFiles)
part->files.append(file); part->files.append(ProjectFile(file, ProjectFile::CXXSource));
pi = ProjectInfo(project); pi = ProjectInfo(project);
pi.appendProjectPart(part); pi.appendProjectPart(part);
pi.finish(); pi.finish();
...@@ -504,9 +518,9 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_ ...@@ -504,9 +518,9 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_
QCOMPARE(refreshedFiles.size(), initialProjectFiles.size()); QCOMPARE(refreshedFiles.size(), initialProjectFiles.size());
snapshot = mm->snapshot(); snapshot = mm->snapshot();
foreach (const ProjectFile &file, initialProjectFiles) { foreach (const QString &file, initialProjectFiles) {
QVERIFY(refreshedFiles.contains(file.path)); QVERIFY(refreshedFiles.contains(file));
QVERIFY(snapshot.contains(file.path)); QVERIFY(snapshot.contains(file));
} }
document = snapshot.document(fileToChange); document = snapshot.document(fileToChange);
...@@ -524,8 +538,8 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_ ...@@ -524,8 +538,8 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_
// Add or remove source file. The configuration stays the same. // Add or remove source file. The configuration stays the same.
part->files.clear(); part->files.clear();
foreach (const ProjectFile &file, finalProjectFiles) foreach (const QString &file, finalProjectFiles)
part->files.append(file); part->files.append(ProjectFile(file, ProjectFile::CXXSource));
pi = ProjectInfo(project); pi = ProjectInfo(project);
pi.appendProjectPart(part); pi.appendProjectPart(part);
pi.finish(); pi.finish();
...@@ -534,9 +548,9 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_ ...@@ -534,9 +548,9 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_
QCOMPARE(refreshedFiles.size(), finalProjectFiles.size()); QCOMPARE(refreshedFiles.size(), finalProjectFiles.size());
snapshot = mm->snapshot(); snapshot = mm->snapshot();
foreach (const ProjectFile &file, finalProjectFiles) { foreach (const QString &file, finalProjectFiles) {
QVERIFY(refreshedFiles.contains(file.path)); QVERIFY(refreshedFiles.contains(file));
QVERIFY(snapshot.contains(file.path)); QVERIFY(snapshot.contains(file));
} }
document = snapshot.document(fileToChange); document = snapshot.document(fileToChange);
const QDateTime lastModifiedAfter = document->lastModified(); const QDateTime lastModifiedAfter = document->lastModified();
...@@ -549,19 +563,15 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_ ...@@ -549,19 +563,15 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_
void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_change_data() void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_change_data()
{ {
QTest::addColumn<QString>("fileToChange"); QTest::addColumn<QString>("fileToChange");
QTest::addColumn<QList<ProjectFile> >("initialProjectFiles"); QTest::addColumn<QStringList>("initialProjectFiles");
QTest::addColumn<QList<ProjectFile> >("finalProjectFiles"); QTest::addColumn<QStringList>("finalProjectFiles");
const MyTestDataDir testDataDir(_("testdata_refresh2")); const QString testCpp = QLatin1String("source.cpp");
const QString testCpp(testDataDir.file(_("source.cpp"))); const QString testCpp2 = QLatin1String("source2.cpp");
const QString testCpp2(testDataDir.file(_("source2.cpp")));
const QString fileToChange = testCpp; const QString fileToChange = testCpp;
QList<ProjectFile> projectFiles1 = QList<ProjectFile>() const QStringList projectFiles1 = QStringList() << testCpp;
<< ProjectFile(testCpp, ProjectFile::CXXSource); const QStringList projectFiles2 = QStringList() << testCpp << testCpp2;
QList<ProjectFile> projectFiles2 = QList<ProjectFile>()
<< ProjectFile(testCpp, ProjectFile::CXXSource)
<< ProjectFile(testCpp2, ProjectFile::CXXSource);
// Add a file // Add a file
QTest::newRow("case: add project file") << fileToChange << projectFiles1 << projectFiles2; QTest::newRow("case: add project file") << fileToChange << projectFiles1 << projectFiles2;
...@@ -1059,7 +1069,7 @@ void CppToolsPlugin::test_modelmanager_renameIncludes() ...@@ -1059,7 +1069,7 @@ void CppToolsPlugin::test_modelmanager_renameIncludes()
} GCHelper; } GCHelper;
Q_UNUSED(GCHelper); // do not warn about being unused Q_UNUSED(GCHelper); // do not warn about being unused
QTemporaryDir tmpDir; TemporaryDir tmpDir;
QVERIFY(tmpDir.isValid()); QVERIFY(tmpDir.isValid());
const QDir workingDir(tmpDir.path()); const QDir workingDir(tmpDir.path());
......
...@@ -87,15 +87,18 @@ public: ...@@ -87,15 +87,18 @@ public:
} }
// Write source to temprorary file // Write source to temprorary file
const QString filePath = QDir::tempPath() + QLatin1String("/file.h"); Tests::TemporaryDir temporaryDir;
Document::Ptr document = Document::create(filePath); QVERIFY(temporaryDir.isValid());
QVERIFY(writeFile(document->fileName(), sourceWithoutCursorMarker.toUtf8())); const QString filePath = temporaryDir.createFile("file.h",
sourceWithoutCursorMarker.toUtf8());
QVERIFY(!filePath.isEmpty());
// Preprocess source // Preprocess source
Environment env; Environment env;
Preprocessor preprocess(0, &env); Preprocessor preprocess(0, &env);
const QByteArray preprocessedSource = preprocess.run(filePath, sourceWithoutCursorMarker); const QByteArray preprocessedSource = preprocess.run(filePath, sourceWithoutCursorMarker);
Document::Ptr document = Document::create(filePath);
document->setUtf8Source(preprocessedSource); document->setUtf8Source(preprocessedSource);
document->parse(parseMode); document->parse(parseMode);
document->check(); document->check();
......
...@@ -63,22 +63,16 @@ public: ...@@ -63,22 +63,16 @@ public:
cleanUp(); cleanUp();
} }
Document::Ptr run(const QByteArray &source) Document::Ptr run(const QString &filePath)
{ {
const QString fileName = TestIncludePaths::testFilePath();
FileWriterAndRemover scopedFile(fileName, source);
if (!scopedFile.writtenSuccessfully())
return Document::Ptr();
QScopedPointer<CppSourceProcessor> sourceProcessor( QScopedPointer<CppSourceProcessor> sourceProcessor(
CppModelManager::createSourceProcessor()); CppModelManager::createSourceProcessor());
const ProjectPart::HeaderPath hp(TestIncludePaths::directoryOfTestFile(), const ProjectPart::HeaderPath hp(TestIncludePaths::directoryOfTestFile(),
ProjectPart::HeaderPath::IncludePath); ProjectPart::HeaderPath::IncludePath);
sourceProcessor->setHeaderPaths(ProjectPart::HeaderPaths() << hp); sourceProcessor->setHeaderPaths(ProjectPart::HeaderPaths() << hp);
sourceProcessor->run(fileName); sourceProcessor->run(filePath);
Document::Ptr document = m_cmm->document(fileName); Document::Ptr document = m_cmm->document(filePath);
return document; return document;
} }
...@@ -101,14 +95,11 @@ private: ...@@ -101,14 +95,11 @@ private:
/// Check: Resolved and unresolved includes are properly tracked. /// Check: Resolved and unresolved includes are properly tracked.
void CppToolsPlugin::test_cppsourceprocessor_includes_resolvedUnresolved() void CppToolsPlugin::test_cppsourceprocessor_includes_resolvedUnresolved()
{ {
QByteArray source = const QString testFilePath
"#include \"header.h\"\n" = TestIncludePaths::testFilePath(QLatin1String("test_main_resolvedUnresolved.cpp"));
"#include \"notresolvable.h\"\n"
"\n"
;
SourcePreprocessor processor; SourcePreprocessor processor;
Document::Ptr document = processor.run(source); Document::Ptr document = processor.run(testFilePath);
QVERIFY(document); QVERIFY(document);
const QList<Document::Include> resolvedIncludes = document->resolvedIncludes(); const QList<Document::Include> resolvedIncludes = document->resolvedIncludes();
...@@ -167,15 +158,11 @@ void CppToolsPlugin::test_cppsourceprocessor_includes_cyclic() ...@@ -167,15 +158,11 @@ void CppToolsPlugin::test_cppsourceprocessor_includes_cyclic()
/// Check: All include errors are reported as diagnostic messages. /// Check: All include errors are reported as diagnostic messages.
void CppToolsPlugin::test_cppsourceprocessor_includes_allDiagnostics() void CppToolsPlugin::test_cppsourceprocessor_includes_allDiagnostics()
{ {
QByteArray source = const QString testFilePath
"#include <NotResolvable1>\n" = TestIncludePaths::testFilePath(QLatin1String("test_main_allDiagnostics.cpp"));
"#include <NotResolvable2>\n"
"#include \"/some/nonexisting/file123.h\"\n"
"\n"
;
SourcePreprocessor processor; SourcePreprocessor processor;
Document::Ptr document = processor.run(source); Document::Ptr document = processor.run(testFilePath);
QVERIFY(document); QVERIFY(document);
QCOMPARE(document->resolvedIncludes().size(), 0); QCOMPARE(document->resolvedIncludes().size(), 0);
...@@ -185,15 +172,11 @@ void CppToolsPlugin::test_cppsourceprocessor_includes_allDiagnostics() ...@@ -185,15 +172,11 @@ void CppToolsPlugin::test_cppsourceprocessor_includes_allDiagnostics()
void CppToolsPlugin::test_cppsourceprocessor_macroUses() void CppToolsPlugin::test_cppsourceprocessor_macroUses()
{ {
QByteArray source = const QString testFilePath
"#define SOMEDEFINE 1\n" = TestIncludePaths::testFilePath(QLatin1String("test_main_macroUses.cpp"));
"#if SOMEDEFINE == 1\n"
" int someNumber;\n"
"#endif\n"
;
SourcePreprocessor processor; SourcePreprocessor processor;
Document::Ptr document = processor.run(source); Document::Ptr document = processor.run(testFilePath);
QVERIFY(document); QVERIFY(document);
const QList<Document::MacroUse> macroUses = document->macroUses(); const QList<Document::MacroUse> macroUses = document->macroUses();
QCOMPARE(macroUses.size(), 1); QCOMPARE(macroUses.size(), 1);
......
...@@ -77,8 +77,12 @@ TestDocument::TestDocument(const QByteArray &fileName, const QByteArray &source, ...@@ -77,8 +77,12 @@ TestDocument::TestDocument(const QByteArray &fileName, const QByteArray &source,
QString TestDocument::filePath() const QString TestDocument::filePath() const
{ {
if (!m_baseDirectory.isEmpty())
return QDir::cleanPath(m_baseDirectory + QLatin1Char('/') + m_fileName);
if (!QFileInfo(m_fileName).isAbsolute()) if (!QFileInfo(m_fileName).isAbsolute())
return QDir::tempPath() + QLatin1Char('/') + m_fileName; return QDir::tempPath() + QLatin1Char('/') + m_fileName;
return m_fileName; return m_fileName;
} }
...@@ -263,9 +267,25 @@ void ProjectOpenerAndCloser::onGcFinished() ...@@ -263,9 +267,25 @@ void ProjectOpenerAndCloser::onGcFinished()
m_gcFinished = true; m_gcFinished = true;
} }
TemporaryCopiedDir::TemporaryCopiedDir(const QString &sourceDirPath) TemporaryDir::TemporaryDir()
: m_temporaryDir(QDir::tempPath() + QLatin1String("/qtcreator-tests-XXXXXX")) : m_temporaryDir(QDir::tempPath() + QLatin1String("/qtcreator-tests-XXXXXX"))
, m_isValid(m_temporaryDir.isValid()) , m_isValid(m_temporaryDir.isValid())
{
}
QString TemporaryDir::createFile(const QByteArray &relativePath, const QByteArray &contents)
{
const QString relativePathString = QString::fromUtf8(relativePath);
if (relativePathString.isEmpty() || QFileInfo(relativePathString).isAbsolute())
return QString();
const QString filePath = m_temporaryDir.path() + QLatin1Char('/') + relativePathString;
if (!TestCase::writeFile(filePath, contents))
return QString();
return filePath;
}
TemporaryCopiedDir::TemporaryCopiedDir(const QString &sourceDirPath)
{ {
if (!m_isValid) if (!m_isValid)
return; return;
......
...@@ -60,10 +60,13 @@ class CPPTOOLS_EXPORT TestDocument ...@@ -60,10 +60,13 @@ class CPPTOOLS_EXPORT TestDocument
public: public:
TestDocument(const QByteArray &fileName, const QByteArray &source, char cursorMarker = '@'); TestDocument(const QByteArray &fileName, const QByteArray &source, char cursorMarker = '@');
void setBaseDirectory(const QString &baseDirectory) { m_baseDirectory = baseDirectory; }
QString filePath() const; QString filePath() const;
bool writeToDisk() const; bool writeToDisk() const;
public: public:
QString m_baseDirectory;
QString m_fileName; QString m_fileName;
QString m_source; QString m_source;
char m_cursorMarker; char m_cursorMarker;
...@@ -124,20 +127,33 @@ private: ...@@ -124,20 +127,33 @@ private:
QList<ProjectExplorer::Project *> m_openProjects; QList<ProjectExplorer::Project *> m_openProjects;
}; };
class CPPTOOLS_EXPORT TemporaryCopiedDir class TemporaryDir
{ {
Q_DISABLE_COPY(TemporaryDir)
public: public:
TemporaryCopiedDir(const QString &sourceDirPath); TemporaryDir();
bool isValid() const { return m_isValid; } bool isValid() const { return m_isValid; }
QString path() const { return m_temporaryDir.path(); } QString path() const { return m_temporaryDir.path(); }
QString absolutePath(const QByteArray &relativePath) const;
private: QString createFile(const QByteArray &relativePath, const QByteArray &contents);
protected:
QTemporaryDir m_temporaryDir; QTemporaryDir m_temporaryDir;
bool m_isValid; bool m_isValid;
}; };
class CPPTOOLS_EXPORT TemporaryCopiedDir : public TemporaryDir
{
public:
TemporaryCopiedDir(const QString &sourceDirPath);
QString absolutePath(const QByteArray &relativePath) const;
private:
TemporaryCopiedDir();
};
class CPPTOOLS_EXPORT VerifyCleanCppModelManager class CPPTOOLS_EXPORT VerifyCleanCppModelManager
{ {
public: public:
......
...@@ -544,14 +544,8 @@ bool IncludeGroup::hasCommonIncludeDir() const ...@@ -544,14 +544,8 @@ bool IncludeGroup::hasCommonIncludeDir() const
using namespace Tests; using namespace Tests;
using CppTools::Internal::CppToolsPlugin; using CppTools::Internal::CppToolsPlugin;
static QList<Include> includesForSource(const QByteArray &source) static QList<Include> includesForSource(const QString &filePath)
{ {
const QString fileName = TestIncludePaths::testFilePath();
FileWriterAndRemover scopedFile(fileName, source);
if (!scopedFile.writtenSuccessfully())
return QList<Include>();
using namespace CppTools::Internal; using namespace CppTools::Internal;
CppModelManager *cmm = CppModelManager::instance(); CppModelManager *cmm = CppModelManager::instance();
cmm->GC(); cmm->GC();
...@@ -560,44 +554,18 @@ static QList<Include> includesForSource(const QByteArray &source) ...@@ -560,44 +554,18 @@ static QList<Include> includesForSource(const QByteArray &source)
<< ProjectPart::HeaderPath( << ProjectPart::HeaderPath(
TestIncludePaths::globalIncludePath(), TestIncludePaths::globalIncludePath(),
ProjectPart::HeaderPath::IncludePath)); ProjectPart::HeaderPath::IncludePath));
sourceProcessor->run(fileName); sourceProcessor->run(filePath);
Document::Ptr document = cmm->document(fileName); Document::Ptr document = cmm->document(filePath);
return document->resolvedIncludes(); return document->resolvedIncludes();
} }
void CppToolsPlugin::test_includeGroups_detectIncludeGroupsByNewLines() void CppToolsPlugin::test_includeGroups_detectIncludeGroupsByNewLines()
{ {
// Source referencing those files const QString testFilePath = TestIncludePaths::testFilePath(
QByteArray source = QLatin1String("test_main_detectIncludeGroupsByNewLines.cpp"));
"#include \"header.h\"\n"
"\n" QList<Include> includes = includesForSource(testFilePath);
"#include \"file.h\"\n"
"#include \"fileother.h\"\n"
"\n"
"#include <lib/fileother.h>\n"
"#include <lib/file.h>\n"
"\n"
"#include \"otherlib/file.h\"\n"
"#include \"otherlib/fileother.h\"\n"
"\n"
"#include \"utils/utils.h\"\n"
"\n"
"#include <QDebug>\n"
"#include <QDir>\n"
"#include <QString>\n"
"\n"
"#include <iostream>\n"
"#include <string>\n"
"#include <except>\n"
"\n"
"#include <iostream>\n"
"#include \"stuff\"\n"
"#include <except>\n"
"\n"
;
QList<Include> includes = includesForSource(source);
QCOMPARE(includes.size(), 17); QCOMPARE(includes.size(), 17);
QList<IncludeGroup> includeGroups QList<IncludeGroup> includeGroups
= IncludeGroup::detectIncludeGroupsByNewLines(includes); = IncludeGroup::detectIncludeGroupsByNewLines(includes);
...@@ -636,20 +604,10 @@ void CppToolsPlugin::test_includeGroups_detectIncludeGroupsByNewLines() ...@@ -636,20 +604,10 @@ void CppToolsPlugin::test_includeGroups_detectIncludeGroupsByNewLines()
void CppToolsPlugin::test_includeGroups_detectIncludeGroupsByIncludeDir() void CppToolsPlugin::test_includeGroups_detectIncludeGroupsByIncludeDir()
{ {