CppEditor: Tests: Use QTemporaryDir and avoid writing into creator source tree

This should improve results of CI tests where multiple creator instances
execute the plugin tests.

Change-Id: I557a0964568655662108df201589ba369096f4bf
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This commit is contained in:
Nikolai Kosjar
2014-12-10 17:03:49 +01:00
parent 71c27ba4cc
commit d9c70f43d9
7 changed files with 198 additions and 113 deletions

View File

@@ -73,9 +73,13 @@ public:
{ {
QVERIFY(succeededSoFar()); QVERIFY(succeededSoFar());
// Write files to disk
CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
TestDocument testDocument("file.cpp", original, '|'); TestDocument testDocument("file.cpp", original, '|');
QVERIFY(testDocument.hasCursorMarker()); QVERIFY(testDocument.hasCursorMarker());
testDocument.m_source.remove(testDocument.m_cursorPosition, 1); testDocument.m_source.remove(testDocument.m_cursorPosition, 1);
testDocument.setBaseDirectory(temporaryDir.path());
QVERIFY(testDocument.writeToDisk()); QVERIFY(testDocument.writeToDisk());
// Update Code Model // Update Code Model

View File

@@ -82,22 +82,24 @@ public:
QSet<QString> filePaths; QSet<QString> filePaths;
const int sourceListSize = sourceList.size(); const int sourceListSize = sourceList.size();
CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
for (int i = 0; i < sourceListSize; ++i) { for (int i = 0; i < sourceListSize; ++i) {
const QByteArray &source = sourceList.at(i); const QByteArray &source = sourceList.at(i);
// Write source to file // Write source to file
const QString fileName = QString::fromLatin1("%1/file%2.h").arg(QDir::tempPath()) const QString fileName = QString::fromLatin1("file%1.h").arg(i+1);
.arg(i+1); const QString absoluteFilePath = temporaryDir.createFile(fileName.toLatin1(), source);
QVERIFY(writeFile(fileName, source)); filePaths << absoluteFilePath;
filePaths << fileName;
} }
// Update Code Model // Update Code Model
QVERIFY(parseFiles(filePaths)); QVERIFY(parseFiles(filePaths));
// Open Editor // Open Editor
const QString fileName = QDir::tempPath() + QLatin1String("/file1.h"); const QString fileName = temporaryDir.path() + QLatin1String("/file1.h");
CppEditor *editor; CppEditor *editor;
QVERIFY(openCppEditor(fileName, &editor)); QVERIFY(openCppEditor(fileName, &editor));
closeEditorAtEndOfTestCase(editor); closeEditorAtEndOfTestCase(editor);

View File

@@ -107,8 +107,13 @@ BaseQuickFixTestCase::BaseQuickFixTestCase(const QList<QuickFixTestDocument::Ptr
QVERIFY2(cursorMarkersCount == 1, "Exactly one cursor marker is allowed."); QVERIFY2(cursorMarkersCount == 1, "Exactly one cursor marker is allowed.");
// Write documents to disk // Write documents to disk
foreach (QuickFixTestDocument::Ptr document, m_testDocuments) m_temporaryDirectory.reset(new CppTools::Tests::TemporaryDir);
QVERIFY(m_temporaryDirectory->isValid());
foreach (QuickFixTestDocument::Ptr document, m_testDocuments) {
if (QFileInfo(document->m_fileName).isRelative())
document->setBaseDirectory(m_temporaryDirectory->path());
document->writeToDisk(); document->writeToDisk();
}
// Set appropriate include paths // Set appropriate include paths
if (!headerPaths.isEmpty()) { if (!headerPaths.isEmpty()) {
@@ -2298,16 +2303,18 @@ void CppEditorPlugin::test_quickfix_InsertDeclFromDef()
/// Check: Add include if there is already an include /// Check: Add include if there is already an include
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onSimpleName() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onSimpleName()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
// Header File // Header File
original = "class Foo {};\n"; original = "class Foo {};\n";
expected = original; expected = original;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() + "/afile.h", testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.h",
original, expected); original, expected);
// Source File // Source File
original = original =
@@ -2327,8 +2334,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onSimpleNam
" Foo foo;\n" " Foo foo;\n"
"}\n" "}\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.cpp",
+ "/afile.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifier factory; AddIncludeForUndefinedIdentifier factory;
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2337,16 +2344,18 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onSimpleNam
/// Check: Cursor is on a qualified name (1) /// Check: Cursor is on a qualified name (1)
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onNameOfQualifiedName() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onNameOfQualifiedName()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
// Header File // Header File
original = "namespace N { class Foo {}; }\n"; original = "namespace N { class Foo {}; }\n";
expected = original; expected = original;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.h",
+ "/afile.h", original, expected); original, expected);
// Source File // Source File
original = original =
@@ -2366,8 +2375,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onNameOfQua
" N::Foo foo;\n" " N::Foo foo;\n"
"}\n" "}\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.cpp",
+ "/afile.cpp", original, expected); original, expected);
// Do not use the test factory, at least once we want to go through the "full stack". // Do not use the test factory, at least once we want to go through the "full stack".
AddIncludeForUndefinedIdentifier factory; AddIncludeForUndefinedIdentifier factory;
@@ -2376,16 +2385,18 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onNameOfQua
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onBaseOfQualifiedName() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onBaseOfQualifiedName()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
// Header File // Header File
original = "namespace N { class Foo {}; }\n"; original = "namespace N { class Foo {}; }\n";
expected = original; expected = original;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() + "/afile.h", testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.h",
original, expected); original, expected);
// Source File // Source File
original = original =
@@ -2405,8 +2416,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onBaseOfQua
" N::Foo foo;\n" " N::Foo foo;\n"
"}\n" "}\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.cpp",
+ "/afile.cpp", original, expected); original, expected);
// Do not use the test factory, at least once we want to go through the "full stack". // Do not use the test factory, at least once we want to go through the "full stack".
AddIncludeForUndefinedIdentifier factory; AddIncludeForUndefinedIdentifier factory;
@@ -2415,16 +2426,18 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onBaseOfQua
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onTemplateName() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onTemplateName()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
// Header File // Header File
original = "namespace N { template <typename T> class Foo {}; }\n"; original = "namespace N { template <typename T> class Foo {}; }\n";
expected = original; expected = original;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.h",
+ "/afile.h", original, expected); original, expected);
// Source File // Source File
original = original =
@@ -2444,8 +2457,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onTemplateN
" N::Foo<Bar> foo;\n" " N::Foo<Bar> foo;\n"
"}\n" "}\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.cpp",
+ "/afile.cpp", original, expected); original, expected);
// Do not use the test factory, at least once we want to go through the "full stack". // Do not use the test factory, at least once we want to go through the "full stack".
AddIncludeForUndefinedIdentifier factory; AddIncludeForUndefinedIdentifier factory;
@@ -2454,16 +2467,18 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onTemplateN
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onTemplateNameInsideArguments() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onTemplateNameInsideArguments()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
// Header File // Header File
original = "namespace N { template <typename T> class Foo {}; }\n"; original = "namespace N { template <typename T> class Foo {}; }\n";
expected = original; expected = original;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.h",
+ "/afile.h", original, expected); original, expected);
// Source File // Source File
original = original =
@@ -2483,8 +2498,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onTemplateN
" N::Bar<Foo> foo;\n" " N::Bar<Foo> foo;\n"
"}\n" "}\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.cpp",
+ "/afile.cpp", original, expected); original, expected);
// Do not use the test factory, at least once we want to go through the "full stack". // Do not use the test factory, at least once we want to go through the "full stack".
AddIncludeForUndefinedIdentifier factory; AddIncludeForUndefinedIdentifier factory;
@@ -2493,16 +2508,18 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onTemplateN
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForwardDeclaration() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForwardDeclaration()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
// Header File // Header File
original = "class Foo {};\n"; original = "class Foo {};\n";
expected = original; expected = original;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.h",
+ "/afile.h", original, expected); original, expected);
// Source File // Source File
original = original =
@@ -2526,8 +2543,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForward
" Foo foo;\n" " Foo foo;\n"
"}\n" "}\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.cpp",
+ "/afile.cpp", original, expected); original, expected);
// Do not use the test factory, at least once we want to go through the "full stack". // Do not use the test factory, at least once we want to go through the "full stack".
AddIncludeForUndefinedIdentifier factory; AddIncludeForUndefinedIdentifier factory;
@@ -2536,16 +2553,18 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForward
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForwardDeclaration2() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForwardDeclaration2()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
// Header File // Header File
original = "template<class T> class Foo {};\n"; original = "template<class T> class Foo {};\n";
expected = original; expected = original;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.h",
+ "/afile.h", original, expected); original, expected);
// Source File // Source File
original = original =
@@ -2569,8 +2588,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForward
" Foo foo;\n" " Foo foo;\n"
"}\n" "}\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.cpp",
+ "/afile.cpp", original, expected); original, expected);
// Do not use the test factory, at least once we want to go through the "full stack". // Do not use the test factory, at least once we want to go through the "full stack".
AddIncludeForUndefinedIdentifier factory; AddIncludeForUndefinedIdentifier factory;
@@ -2579,22 +2598,24 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForward
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForwardHeader() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForwardHeader()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
// Header File // Header File
original = "template<class T> class QMyClass {};\n"; original = "template<class T> class QMyClass {};\n";
expected = original; expected = original;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/qmyclass.h",
+ "/qmyclass.h", original, expected); original, expected);
// Forward Header File // Forward Header File
original = "#include \"qmyclass.h\"\n"; original = "#include \"qmyclass.h\"\n";
expected = original; expected = original;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/QMyClass",
+ "/QMyClass", original, expected); original, expected);
// Source File // Source File
original = original =
@@ -2614,8 +2635,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForward
" QMyClass c;\n" " QMyClass c;\n"
"}\n" "}\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.cpp",
+ "/afile.cpp", original, expected); original, expected);
// Do not use the test factory, at least once we want to go through the "full stack". // Do not use the test factory, at least once we want to go through the "full stack".
AddIncludeForUndefinedIdentifier factory; AddIncludeForUndefinedIdentifier factory;
@@ -2625,8 +2646,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForward
/// Check: Ignore *.moc includes /// Check: Ignore *.moc includes
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_ignoremoc() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_ignoremoc()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -2640,8 +2663,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_i
"void f();\n" "void f();\n"
"#include \"file.moc\";\n" "#include \"file.moc\";\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2650,8 +2673,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_i
/// Check: Insert include at top for a sorted group /// Check: Insert include at top for a sorted group
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_sortingTop() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_sortingTop()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -2666,8 +2691,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_s
"#include \"z.h\"\n" "#include \"z.h\"\n"
"\n" "\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2676,8 +2701,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_s
/// Check: Insert include in the middle for a sorted group /// Check: Insert include in the middle for a sorted group
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_sortingMiddle() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_sortingMiddle()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -2692,8 +2719,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_s
"#include \"z.h\"\n" "#include \"z.h\"\n"
"\n" "\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2702,8 +2729,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_s
/// Check: Insert include at bottom for a sorted group /// Check: Insert include at bottom for a sorted group
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_sortingBottom() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_sortingBottom()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -2718,8 +2747,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_s
"#include \"file.h\"\n" "#include \"file.h\"\n"
"\n" "\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2728,8 +2757,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_s
/// Check: For an unsorted group the new include is appended /// Check: For an unsorted group the new include is appended
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_appendToUnsorted() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_appendToUnsorted()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -2744,8 +2775,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_a
"#include \"file.h\"\n" "#include \"file.h\"\n"
"\n" "\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() + testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2754,8 +2785,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_a
/// Check: Insert a local include at front if there are only global includes /// Check: Insert a local include at front if there are only global includes
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_firstLocalIncludeAtFront() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_firstLocalIncludeAtFront()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -2771,8 +2804,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_f
"#include <b.h>\n" "#include <b.h>\n"
"\n" "\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2781,8 +2814,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_f
/// Check: Insert a global include at back if there are only local includes /// Check: Insert a global include at back if there are only local includes
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_firstGlobalIncludeAtBack() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_firstGlobalIncludeAtBack()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -2800,8 +2835,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_f
"\n" "\n"
"void f();\n" "void f();\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<file.h>")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<file.h>"));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2810,8 +2845,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_f
/// Check: Prefer group with longest matching prefix /// Check: Prefer group with longest matching prefix
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_preferGroupWithLongerMatchingPrefix() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_preferGroupWithLongerMatchingPrefix()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -2830,8 +2867,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_p
"#include \"foo.h\"\n" "#include \"foo.h\"\n"
"\n" "\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"prefixc.h\"")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"prefixc.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2840,8 +2877,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_p
/// Check: Create a new include group if there are only include groups with a different include dir /// Check: Create a new include group if there are only include groups with a different include dir
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_newGroupIfOnlyDifferentIncludeDirs() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_newGroupIfOnlyDifferentIncludeDirs()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -2857,8 +2896,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_n
"#include \"file.h\"\n" "#include \"file.h\"\n"
"\n" "\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2867,8 +2906,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_n
/// Check: Include group with mixed include dirs, sorted --> insert properly /// Check: Include group with mixed include dirs, sorted --> insert properly
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_mixedDirsSorted() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_mixedDirsSorted()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -2885,8 +2926,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
"#include <utils/file.h>\n" "#include <utils/file.h>\n"
"\n" "\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<firstlib/file.h>")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<firstlib/file.h>"));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2895,8 +2936,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
/// Check: Include group with mixed include dirs, unsorted --> append /// Check: Include group with mixed include dirs, unsorted --> append
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_mixedDirsUnsorted() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_mixedDirsUnsorted()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -2913,8 +2956,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
"#include <lastlib/file.h>\n" "#include <lastlib/file.h>\n"
"\n" "\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<lastlib/file.h>")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<lastlib/file.h>"));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2923,8 +2966,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
/// Check: Include group with mixed include types /// Check: Include group with mixed include types
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_mixedIncludeTypes1() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_mixedIncludeTypes1()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -2939,8 +2984,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
"#include <global.h>\n" "#include <global.h>\n"
"\n" "\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"z.h\"")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"z.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2949,8 +2994,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
/// Check: Include group with mixed include types /// Check: Include group with mixed include types
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_mixedIncludeTypes2() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_mixedIncludeTypes2()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -2965,8 +3012,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
"#include <global.h>\n" "#include <global.h>\n"
"\n" "\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"a.h\"")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"a.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2975,8 +3022,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
/// Check: Include group with mixed include types /// Check: Include group with mixed include types
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_mixedIncludeTypes3() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_mixedIncludeTypes3()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -2991,8 +3040,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
"#include <global.h>\n" "#include <global.h>\n"
"\n" "\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"lib/file.h\"")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"lib/file.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -3001,11 +3050,17 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
/// Check: Include group with mixed include types /// Check: Include group with mixed include types
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_mixedIncludeTypes4() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_mixedIncludeTypes4()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
// Create existing header; TODO: Why does it must exist?
testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/z.h",
original, expected);
original = original =
"#include \"z.h\"\n" "#include \"z.h\"\n"
"#include <global.h>\n" "#include <global.h>\n"
@@ -3017,8 +3072,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
"#include <lib/file.h>\n" "#include <lib/file.h>\n"
"\n" "\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<lib/file.h>")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<lib/file.h>"));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -3027,8 +3082,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
/// Check: Insert very first include /// Check: Insert very first include
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_noinclude() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_noinclude()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -3040,8 +3097,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_n
"\n" "\n"
"void f();\n" "void f();\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -3050,8 +3107,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_n
/// Check: Insert very first include after include guard /// Check: Insert very first include after include guard
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_onlyIncludeGuard() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_onlyIncludeGuard()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -3070,8 +3129,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_o
"void f();\n" "void f();\n"
"#endif\n" "#endif\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -3080,8 +3139,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_o
/// Check: Insert very first include if there is a c++ style comment on top /// Check: Insert very first include if there is a c++ style comment on top
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_veryFirstIncludeCppStyleCommentOnTop() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_veryFirstIncludeCppStyleCommentOnTop()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -3099,8 +3160,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_v
"\n" "\n"
"void @f();\n" "void @f();\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -3109,8 +3170,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_v
/// Check: Insert very first include if there is a c style comment on top /// Check: Insert very first include if there is a c style comment on top
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_veryFirstIncludeCStyleCommentOnTop() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_veryFirstIncludeCStyleCommentOnTop()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -3132,8 +3195,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_v
"\n" "\n"
"void @f();\n" "void @f();\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -3143,8 +3206,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_v
/// include paths /// include paths
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_checkQSomethingInQtIncludePaths() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_checkQSomethingInQtIncludePaths()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
@@ -3156,8 +3221,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_c
"\n" "\n"
"QDir dir;\n" "QDir dir;\n"
; ;
testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ "/file.cpp", original, expected); original, expected);
AddIncludeForUndefinedIdentifier factory; AddIncludeForUndefinedIdentifier factory;
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalQtCoreIncludePath()); QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalQtCoreIncludePath());
@@ -3165,12 +3230,14 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_c
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_noDoubleQtHeaderInclude() void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_noDoubleQtHeaderInclude()
{ {
QList<QuickFixTestDocument::Ptr> testFiles; CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original; QByteArray original;
QByteArray expected; QByteArray expected;
const QByteArray base = TestIncludePaths::directoryOfTestFile().toUtf8(); const QByteArray base = temporaryDir.path().toUtf8();
// This file makes the QDir definition available so that locator finds it. // This file makes the QDir definition available so that locator finds it.
original = expected = "#include <QDir>\n" original = expected = "#include <QDir>\n"

View File

@@ -82,6 +82,8 @@ protected:
QList<QuickFixTestDocument::Ptr> m_testDocuments; QList<QuickFixTestDocument::Ptr> m_testDocuments;
private: private:
QScopedPointer<CppTools::Tests::TemporaryDir> m_temporaryDirectory;
CppTools::CppCodeStylePreferences *m_cppCodeStylePreferences; CppTools::CppCodeStylePreferences *m_cppCodeStylePreferences;
QByteArray m_cppCodeStylePreferencesOriginalDelegateId; QByteArray m_cppCodeStylePreferencesOriginalDelegateId;

View File

@@ -89,6 +89,10 @@ UseSelectionsTestCase::UseSelectionsTestCase(TestDocument &testFile,
QVERIFY(testFile.hasCursorMarker()); QVERIFY(testFile.hasCursorMarker());
testFile.m_source.remove(testFile.m_cursorPosition, 1); testFile.m_source.remove(testFile.m_cursorPosition, 1);
CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
testFile.setBaseDirectory(temporaryDir.path());
testFile.writeToDisk(); testFile.writeToDisk();
QVERIFY(openCppEditor(testFile.filePath(), &testFile.m_editor, &m_editorWidget)); QVERIFY(openCppEditor(testFile.filePath(), &testFile.m_editor, &m_editorWidget));

View File

@@ -270,8 +270,13 @@ F2TestCase::F2TestCase(CppEditorAction action,
"No test file with target cursor marker is provided."); "No test file with target cursor marker is provided.");
// Write files to disk // Write files to disk
foreach (TestDocumentPtr testFile, testFiles) CppTools::Tests::TemporaryDir temporaryDir;
QVERIFY(temporaryDir.isValid());
foreach (TestDocumentPtr testFile, testFiles) {
QVERIFY(testFile->baseDirectory().isEmpty());
testFile->setBaseDirectory(temporaryDir.path());
QVERIFY(testFile->writeToDisk()); QVERIFY(testFile->writeToDisk());
}
// Update Code Model // Update Code Model
QSet<QString> filePaths; QSet<QString> filePaths;

View File

@@ -60,6 +60,7 @@ class CPPTOOLS_EXPORT TestDocument
public: public:
TestDocument(const QByteArray &fileName, const QByteArray &source, char cursorMarker = '@'); TestDocument(const QByteArray &fileName, const QByteArray &source, char cursorMarker = '@');
QString baseDirectory() const { return m_baseDirectory; }
void setBaseDirectory(const QString &baseDirectory) { m_baseDirectory = baseDirectory; } void setBaseDirectory(const QString &baseDirectory) { m_baseDirectory = baseDirectory; }
QString filePath() const; QString filePath() const;
@@ -127,7 +128,7 @@ private:
QList<ProjectExplorer::Project *> m_openProjects; QList<ProjectExplorer::Project *> m_openProjects;
}; };
class TemporaryDir class CPPTOOLS_EXPORT TemporaryDir
{ {
Q_DISABLE_COPY(TemporaryDir) Q_DISABLE_COPY(TemporaryDir)