summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2014-12-10 17:03:49 +0100
committerNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2015-01-14 12:10:39 +0100
commitd9c70f43d97a035a951c9e504e5c56259dfdacdb (patch)
treeda1be0c91b0f05eaa7a06e3d0e07e06015cffeba /src
parent71c27ba4cc1806d8c56e92de0aebdc69ae385aa4 (diff)
downloadqt-creator-d9c70f43d97a035a951c9e504e5c56259dfdacdb.tar.gz
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>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/cppeditor/cppdoxygen_test.cpp4
-rw-r--r--src/plugins/cppeditor/cppincludehierarchy_test.cpp14
-rw-r--r--src/plugins/cppeditor/cppquickfix_test.cpp277
-rw-r--r--src/plugins/cppeditor/cppquickfix_test.h2
-rw-r--r--src/plugins/cppeditor/cppuseselections_test.cpp4
-rw-r--r--src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp7
-rw-r--r--src/plugins/cpptools/cpptoolstestcase.h3
7 files changed, 198 insertions, 113 deletions
diff --git a/src/plugins/cppeditor/cppdoxygen_test.cpp b/src/plugins/cppeditor/cppdoxygen_test.cpp
index fbc5443d71..d57e2b5114 100644
--- a/src/plugins/cppeditor/cppdoxygen_test.cpp
+++ b/src/plugins/cppeditor/cppdoxygen_test.cpp
@@ -73,9 +73,13 @@ public:
{
QVERIFY(succeededSoFar());
+ // Write files to disk
+ CppTools::Tests::TemporaryDir temporaryDir;
+ QVERIFY(temporaryDir.isValid());
TestDocument testDocument("file.cpp", original, '|');
QVERIFY(testDocument.hasCursorMarker());
testDocument.m_source.remove(testDocument.m_cursorPosition, 1);
+ testDocument.setBaseDirectory(temporaryDir.path());
QVERIFY(testDocument.writeToDisk());
// Update Code Model
diff --git a/src/plugins/cppeditor/cppincludehierarchy_test.cpp b/src/plugins/cppeditor/cppincludehierarchy_test.cpp
index f016dd2c80..879b7a107f 100644
--- a/src/plugins/cppeditor/cppincludehierarchy_test.cpp
+++ b/src/plugins/cppeditor/cppincludehierarchy_test.cpp
@@ -82,22 +82,24 @@ public:
QSet<QString> filePaths;
const int sourceListSize = sourceList.size();
+
+ CppTools::Tests::TemporaryDir temporaryDir;
+ QVERIFY(temporaryDir.isValid());
+
for (int i = 0; i < sourceListSize; ++i) {
const QByteArray &source = sourceList.at(i);
// Write source to file
- const QString fileName = QString::fromLatin1("%1/file%2.h").arg(QDir::tempPath())
- .arg(i+1);
- QVERIFY(writeFile(fileName, source));
-
- filePaths << fileName;
+ const QString fileName = QString::fromLatin1("file%1.h").arg(i+1);
+ const QString absoluteFilePath = temporaryDir.createFile(fileName.toLatin1(), source);
+ filePaths << absoluteFilePath;
}
// Update Code Model
QVERIFY(parseFiles(filePaths));
// Open Editor
- const QString fileName = QDir::tempPath() + QLatin1String("/file1.h");
+ const QString fileName = temporaryDir.path() + QLatin1String("/file1.h");
CppEditor *editor;
QVERIFY(openCppEditor(fileName, &editor));
closeEditorAtEndOfTestCase(editor);
diff --git a/src/plugins/cppeditor/cppquickfix_test.cpp b/src/plugins/cppeditor/cppquickfix_test.cpp
index 533f036582..caa1d98a59 100644
--- a/src/plugins/cppeditor/cppquickfix_test.cpp
+++ b/src/plugins/cppeditor/cppquickfix_test.cpp
@@ -107,8 +107,13 @@ BaseQuickFixTestCase::BaseQuickFixTestCase(const QList<QuickFixTestDocument::Ptr
QVERIFY2(cursorMarkersCount == 1, "Exactly one cursor marker is allowed.");
// 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();
+ }
// Set appropriate include paths
if (!headerPaths.isEmpty()) {
@@ -2298,16 +2303,18 @@ void CppEditorPlugin::test_quickfix_InsertDeclFromDef()
/// Check: Add include if there is already an include
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onSimpleName()
{
- QList<QuickFixTestDocument::Ptr> testFiles;
+ CppTools::Tests::TemporaryDir temporaryDir;
+ QVERIFY(temporaryDir.isValid());
+ QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original;
QByteArray expected;
// Header File
original = "class Foo {};\n";
expected = original;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() + "/afile.h",
- original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.h",
+ original, expected);
// Source File
original =
@@ -2327,8 +2334,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onSimpleNam
" Foo foo;\n"
"}\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/afile.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifier factory;
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2337,16 +2344,18 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onSimpleNam
/// Check: Cursor is on a qualified name (1)
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onNameOfQualifiedName()
{
- QList<QuickFixTestDocument::Ptr> testFiles;
+ CppTools::Tests::TemporaryDir temporaryDir;
+ QVERIFY(temporaryDir.isValid());
+ QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original;
QByteArray expected;
// Header File
original = "namespace N { class Foo {}; }\n";
expected = original;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/afile.h", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.h",
+ original, expected);
// Source File
original =
@@ -2366,8 +2375,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onNameOfQua
" N::Foo foo;\n"
"}\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/afile.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.cpp",
+ original, expected);
// Do not use the test factory, at least once we want to go through the "full stack".
AddIncludeForUndefinedIdentifier factory;
@@ -2376,16 +2385,18 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onNameOfQua
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onBaseOfQualifiedName()
{
- QList<QuickFixTestDocument::Ptr> testFiles;
+ CppTools::Tests::TemporaryDir temporaryDir;
+ QVERIFY(temporaryDir.isValid());
+ QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original;
QByteArray expected;
// Header File
original = "namespace N { class Foo {}; }\n";
expected = original;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() + "/afile.h",
- original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.h",
+ original, expected);
// Source File
original =
@@ -2405,8 +2416,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onBaseOfQua
" N::Foo foo;\n"
"}\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/afile.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.cpp",
+ original, expected);
// Do not use the test factory, at least once we want to go through the "full stack".
AddIncludeForUndefinedIdentifier factory;
@@ -2415,16 +2426,18 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onBaseOfQua
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onTemplateName()
{
- QList<QuickFixTestDocument::Ptr> testFiles;
+ CppTools::Tests::TemporaryDir temporaryDir;
+ QVERIFY(temporaryDir.isValid());
+ QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original;
QByteArray expected;
// Header File
original = "namespace N { template <typename T> class Foo {}; }\n";
expected = original;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/afile.h", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.h",
+ original, expected);
// Source File
original =
@@ -2444,8 +2457,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onTemplateN
" N::Foo<Bar> foo;\n"
"}\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/afile.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.cpp",
+ original, expected);
// Do not use the test factory, at least once we want to go through the "full stack".
AddIncludeForUndefinedIdentifier factory;
@@ -2454,16 +2467,18 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onTemplateN
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onTemplateNameInsideArguments()
{
- QList<QuickFixTestDocument::Ptr> testFiles;
+ CppTools::Tests::TemporaryDir temporaryDir;
+ QVERIFY(temporaryDir.isValid());
+ QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original;
QByteArray expected;
// Header File
original = "namespace N { template <typename T> class Foo {}; }\n";
expected = original;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/afile.h", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.h",
+ original, expected);
// Source File
original =
@@ -2483,8 +2498,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onTemplateN
" N::Bar<Foo> foo;\n"
"}\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/afile.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.cpp",
+ original, expected);
// Do not use the test factory, at least once we want to go through the "full stack".
AddIncludeForUndefinedIdentifier factory;
@@ -2493,16 +2508,18 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onTemplateN
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForwardDeclaration()
{
- QList<QuickFixTestDocument::Ptr> testFiles;
+ CppTools::Tests::TemporaryDir temporaryDir;
+ QVERIFY(temporaryDir.isValid());
+ QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original;
QByteArray expected;
// Header File
original = "class Foo {};\n";
expected = original;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/afile.h", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.h",
+ original, expected);
// Source File
original =
@@ -2526,8 +2543,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForward
" Foo foo;\n"
"}\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/afile.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.cpp",
+ original, expected);
// Do not use the test factory, at least once we want to go through the "full stack".
AddIncludeForUndefinedIdentifier factory;
@@ -2536,16 +2553,18 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForward
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForwardDeclaration2()
{
- QList<QuickFixTestDocument::Ptr> testFiles;
+ CppTools::Tests::TemporaryDir temporaryDir;
+ QVERIFY(temporaryDir.isValid());
+ QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original;
QByteArray expected;
// Header File
original = "template<class T> class Foo {};\n";
expected = original;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/afile.h", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.h",
+ original, expected);
// Source File
original =
@@ -2569,8 +2588,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForward
" Foo foo;\n"
"}\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/afile.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.cpp",
+ original, expected);
// Do not use the test factory, at least once we want to go through the "full stack".
AddIncludeForUndefinedIdentifier factory;
@@ -2579,22 +2598,24 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForward
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForwardHeader()
{
- QList<QuickFixTestDocument::Ptr> testFiles;
+ CppTools::Tests::TemporaryDir temporaryDir;
+ QVERIFY(temporaryDir.isValid());
+ QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original;
QByteArray expected;
// Header File
original = "template<class T> class QMyClass {};\n";
expected = original;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/qmyclass.h", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/qmyclass.h",
+ original, expected);
// Forward Header File
original = "#include \"qmyclass.h\"\n";
expected = original;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/QMyClass", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/QMyClass",
+ original, expected);
// Source File
original =
@@ -2614,8 +2635,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForward
" QMyClass c;\n"
"}\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/afile.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/afile.cpp",
+ original, expected);
// Do not use the test factory, at least once we want to go through the "full stack".
AddIncludeForUndefinedIdentifier factory;
@@ -2625,8 +2646,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForward
/// Check: Ignore *.moc includes
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 expected;
@@ -2640,8 +2663,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_i
"void f();\n"
"#include \"file.moc\";\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
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
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 expected;
@@ -2666,8 +2691,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_s
"#include \"z.h\"\n"
"\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
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
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 expected;
@@ -2692,8 +2719,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_s
"#include \"z.h\"\n"
"\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
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
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 expected;
@@ -2718,8 +2747,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_s
"#include \"file.h\"\n"
"\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
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
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 expected;
@@ -2744,8 +2775,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_a
"#include \"file.h\"\n"
"\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8() +
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
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
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 expected;
@@ -2771,8 +2804,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_f
"#include <b.h>\n"
"\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
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
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 expected;
@@ -2800,8 +2835,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_f
"\n"
"void f();\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<file.h>"));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2810,8 +2845,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_f
/// Check: Prefer group with longest matching prefix
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 expected;
@@ -2830,8 +2867,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_p
"#include \"foo.h\"\n"
"\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"prefixc.h\""));
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
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 expected;
@@ -2857,8 +2896,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_n
"#include \"file.h\"\n"
"\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
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
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 expected;
@@ -2885,8 +2926,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
"#include <utils/file.h>\n"
"\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<firstlib/file.h>"));
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
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 expected;
@@ -2913,8 +2956,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
"#include <lastlib/file.h>\n"
"\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<lastlib/file.h>"));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2923,8 +2966,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
/// Check: Include group with mixed include types
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 expected;
@@ -2939,8 +2984,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
"#include <global.h>\n"
"\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"z.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2949,8 +2994,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
/// Check: Include group with mixed include types
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 expected;
@@ -2965,8 +3012,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
"#include <global.h>\n"
"\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"a.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -2975,8 +3022,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
/// Check: Include group with mixed include types
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 expected;
@@ -2991,8 +3040,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
"#include <global.h>\n"
"\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"lib/file.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -3001,11 +3050,17 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
/// Check: Include group with mixed include types
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 expected;
+ // Create existing header; TODO: Why does it must exist?
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/z.h",
+ original, expected);
+
original =
"#include \"z.h\"\n"
"#include <global.h>\n"
@@ -3017,8 +3072,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
"#include <lib/file.h>\n"
"\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<lib/file.h>"));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -3027,8 +3082,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m
/// Check: Insert very first include
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 expected;
@@ -3040,8 +3097,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_n
"\n"
"void f();\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
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
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 expected;
@@ -3070,8 +3129,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_o
"void f();\n"
"#endif\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
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
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 expected;
@@ -3099,8 +3160,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_v
"\n"
"void @f();\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
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
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 expected;
@@ -3132,8 +3195,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_v
"\n"
"void @f();\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\""));
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath());
@@ -3143,8 +3206,10 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_v
/// include paths
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 expected;
@@ -3156,8 +3221,8 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_c
"\n"
"QDir dir;\n"
;
- testFiles << QuickFixTestDocument::create(TestIncludePaths::directoryOfTestFile().toUtf8()
- + "/file.cpp", original, expected);
+ testFiles << QuickFixTestDocument::create(temporaryDir.path().toUtf8() + "/file.cpp",
+ original, expected);
AddIncludeForUndefinedIdentifier factory;
QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalQtCoreIncludePath());
@@ -3165,12 +3230,14 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_c
void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_noDoubleQtHeaderInclude()
{
- QList<QuickFixTestDocument::Ptr> testFiles;
+ CppTools::Tests::TemporaryDir temporaryDir;
+ QVERIFY(temporaryDir.isValid());
+ QList<QuickFixTestDocument::Ptr> testFiles;
QByteArray original;
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.
original = expected = "#include <QDir>\n"
diff --git a/src/plugins/cppeditor/cppquickfix_test.h b/src/plugins/cppeditor/cppquickfix_test.h
index 2a7ea4c3b5..18aff2075c 100644
--- a/src/plugins/cppeditor/cppquickfix_test.h
+++ b/src/plugins/cppeditor/cppquickfix_test.h
@@ -82,6 +82,8 @@ protected:
QList<QuickFixTestDocument::Ptr> m_testDocuments;
private:
+ QScopedPointer<CppTools::Tests::TemporaryDir> m_temporaryDirectory;
+
CppTools::CppCodeStylePreferences *m_cppCodeStylePreferences;
QByteArray m_cppCodeStylePreferencesOriginalDelegateId;
diff --git a/src/plugins/cppeditor/cppuseselections_test.cpp b/src/plugins/cppeditor/cppuseselections_test.cpp
index 872a3a1042..d5ccc1ba89 100644
--- a/src/plugins/cppeditor/cppuseselections_test.cpp
+++ b/src/plugins/cppeditor/cppuseselections_test.cpp
@@ -89,6 +89,10 @@ UseSelectionsTestCase::UseSelectionsTestCase(TestDocument &testFile,
QVERIFY(testFile.hasCursorMarker());
testFile.m_source.remove(testFile.m_cursorPosition, 1);
+
+ CppTools::Tests::TemporaryDir temporaryDir;
+ QVERIFY(temporaryDir.isValid());
+ testFile.setBaseDirectory(temporaryDir.path());
testFile.writeToDisk();
QVERIFY(openCppEditor(testFile.filePath(), &testFile.m_editor, &m_editorWidget));
diff --git a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp
index 685febfe69..1087106c1f 100644
--- a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp
+++ b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp
@@ -270,8 +270,13 @@ F2TestCase::F2TestCase(CppEditorAction action,
"No test file with target cursor marker is provided.");
// 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());
+ }
// Update Code Model
QSet<QString> filePaths;
diff --git a/src/plugins/cpptools/cpptoolstestcase.h b/src/plugins/cpptools/cpptoolstestcase.h
index 5cfa8eba40..6cf3ff054a 100644
--- a/src/plugins/cpptools/cpptoolstestcase.h
+++ b/src/plugins/cpptools/cpptoolstestcase.h
@@ -60,6 +60,7 @@ class CPPTOOLS_EXPORT TestDocument
public:
TestDocument(const QByteArray &fileName, const QByteArray &source, char cursorMarker = '@');
+ QString baseDirectory() const { return m_baseDirectory; }
void setBaseDirectory(const QString &baseDirectory) { m_baseDirectory = baseDirectory; }
QString filePath() const;
@@ -127,7 +128,7 @@ private:
QList<ProjectExplorer::Project *> m_openProjects;
};
-class TemporaryDir
+class CPPTOOLS_EXPORT TemporaryDir
{
Q_DISABLE_COPY(TemporaryDir)