diff options
author | Nikolai Kosjar <nikolai.kosjar@theqtcompany.com> | 2014-12-09 18:42:15 +0100 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@theqtcompany.com> | 2014-12-19 10:29:16 +0100 |
commit | 6cafc424e837aa64ecfad3828fb840d08b747452 (patch) | |
tree | 4b48d06bb2ba0117481944393f82b0f99b67d806 /src/plugins/cpptools/cppmodelmanager_test.cpp | |
parent | cb3c7538be3f5ddb26f48b5dfce23bd3ea6daacc (diff) |
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: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
Diffstat (limited to 'src/plugins/cpptools/cppmodelmanager_test.cpp')
-rw-r--r-- | src/plugins/cpptools/cppmodelmanager_test.cpp | 58 |
1 files changed, 34 insertions, 24 deletions
diff --git a/src/plugins/cpptools/cppmodelmanager_test.cpp b/src/plugins/cpptools/cppmodelmanager_test.cpp index 8258dcf7103..915da3828c3 100644 --- a/src/plugins/cpptools/cppmodelmanager_test.cpp +++ b/src/plugins/cpptools/cppmodelmanager_test.cpp @@ -46,7 +46,6 @@ #include <QDebug> #include <QFileInfo> -#include <QTemporaryDir> #include <QtTest> using namespace CppTools; @@ -79,6 +78,15 @@ public: { 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 class ProjectCreator { @@ -478,8 +486,14 @@ void CppToolsPlugin::test_modelmanager_refresh_added_and_purge_removed() void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_change() { QFETCH(QString, fileToChange); - QFETCH(QList<ProjectFile>, initialProjectFiles); - QFETCH(QList<ProjectFile>, finalProjectFiles); + QFETCH(QStringList, initialProjectFiles); + 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; CppModelManager *mm = CppModelManager::instance(); @@ -490,8 +504,8 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_ ProjectPart::Ptr part(new ProjectPart); part->languageVersion = ProjectPart::CXX14; part->qtVersion = ProjectPart::Qt5; - foreach (const ProjectFile &file, initialProjectFiles) - part->files.append(file); + foreach (const QString &file, initialProjectFiles) + part->files.append(ProjectFile(file, ProjectFile::CXXSource)); pi = ProjectInfo(project); pi.appendProjectPart(part); pi.finish(); @@ -504,9 +518,9 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_ QCOMPARE(refreshedFiles.size(), initialProjectFiles.size()); snapshot = mm->snapshot(); - foreach (const ProjectFile &file, initialProjectFiles) { - QVERIFY(refreshedFiles.contains(file.path)); - QVERIFY(snapshot.contains(file.path)); + foreach (const QString &file, initialProjectFiles) { + QVERIFY(refreshedFiles.contains(file)); + QVERIFY(snapshot.contains(file)); } document = snapshot.document(fileToChange); @@ -524,8 +538,8 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_ // Add or remove source file. The configuration stays the same. part->files.clear(); - foreach (const ProjectFile &file, finalProjectFiles) - part->files.append(file); + foreach (const QString &file, finalProjectFiles) + part->files.append(ProjectFile(file, ProjectFile::CXXSource)); pi = ProjectInfo(project); pi.appendProjectPart(part); pi.finish(); @@ -534,9 +548,9 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_ QCOMPARE(refreshedFiles.size(), finalProjectFiles.size()); snapshot = mm->snapshot(); - foreach (const ProjectFile &file, finalProjectFiles) { - QVERIFY(refreshedFiles.contains(file.path)); - QVERIFY(snapshot.contains(file.path)); + foreach (const QString &file, finalProjectFiles) { + QVERIFY(refreshedFiles.contains(file)); + QVERIFY(snapshot.contains(file)); } document = snapshot.document(fileToChange); const QDateTime lastModifiedAfter = document->lastModified(); @@ -549,19 +563,15 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_change_data() { QTest::addColumn<QString>("fileToChange"); - QTest::addColumn<QList<ProjectFile> >("initialProjectFiles"); - QTest::addColumn<QList<ProjectFile> >("finalProjectFiles"); + QTest::addColumn<QStringList>("initialProjectFiles"); + QTest::addColumn<QStringList>("finalProjectFiles"); - const MyTestDataDir testDataDir(_("testdata_refresh2")); - const QString testCpp(testDataDir.file(_("source.cpp"))); - const QString testCpp2(testDataDir.file(_("source2.cpp"))); + const QString testCpp = QLatin1String("source.cpp"); + const QString testCpp2 = QLatin1String("source2.cpp"); const QString fileToChange = testCpp; - QList<ProjectFile> projectFiles1 = QList<ProjectFile>() - << ProjectFile(testCpp, ProjectFile::CXXSource); - QList<ProjectFile> projectFiles2 = QList<ProjectFile>() - << ProjectFile(testCpp, ProjectFile::CXXSource) - << ProjectFile(testCpp2, ProjectFile::CXXSource); + const QStringList projectFiles1 = QStringList() << testCpp; + const QStringList projectFiles2 = QStringList() << testCpp << testCpp2; // Add a file QTest::newRow("case: add project file") << fileToChange << projectFiles1 << projectFiles2; @@ -1059,7 +1069,7 @@ void CppToolsPlugin::test_modelmanager_renameIncludes() } GCHelper; Q_UNUSED(GCHelper); // do not warn about being unused - QTemporaryDir tmpDir; + TemporaryDir tmpDir; QVERIFY(tmpDir.isValid()); const QDir workingDir(tmpDir.path()); |