diff options
Diffstat (limited to 'src/plugins/cpptools')
-rw-r--r-- | src/plugins/cpptools/cpplocatorfilter_test.cpp | 2 | ||||
-rw-r--r-- | src/plugins/cpptools/cppmodelmanager_test.cpp | 59 | ||||
-rw-r--r-- | src/plugins/cpptools/modelmanagertesthelper.cpp | 6 | ||||
-rw-r--r-- | src/plugins/cpptools/modelmanagertesthelper.h | 1 | ||||
-rw-r--r-- | src/plugins/cpptools/symbolsearcher_test.cpp | 4 | ||||
-rw-r--r-- | src/plugins/cpptools/typehierarchybuilder_test.cpp | 7 |
6 files changed, 41 insertions, 38 deletions
diff --git a/src/plugins/cpptools/cpplocatorfilter_test.cpp b/src/plugins/cpptools/cpplocatorfilter_test.cpp index 7b6c3ae274..02262ccf6c 100644 --- a/src/plugins/cpptools/cpplocatorfilter_test.cpp +++ b/src/plugins/cpptools/cpplocatorfilter_test.cpp @@ -82,8 +82,8 @@ private: virtual void doBeforeLocatorRun() { m_modelManager->updateSourceFiles(QStringList() << m_fileName).waitForFinished(); - QVERIFY(m_modelManager->snapshot().contains(m_fileName)); QCoreApplication::processEvents(); + QVERIFY(m_modelManager->snapshot().contains(m_fileName)); } virtual void doAfterLocatorRun() diff --git a/src/plugins/cpptools/cppmodelmanager_test.cpp b/src/plugins/cpptools/cppmodelmanager_test.cpp index 3325e1832d..9e33466a06 100644 --- a/src/plugins/cpptools/cppmodelmanager_test.cpp +++ b/src/plugins/cpptools/cppmodelmanager_test.cpp @@ -200,6 +200,15 @@ private: const QString &m_filePath; }; +static QStringList updateProjectInfo(CppModelManager *modelManager, ModelManagerTestHelper *helper, + const ProjectInfo &projectInfo) +{ + helper->resetRefreshedSourceFiles(); + modelManager->updateProjectInfo(projectInfo).waitForFinished(); + QCoreApplication::processEvents(); + return helper->waitForRefreshedSourceFiles(); +} + } // anonymous namespace /// Check: The preprocessor cleans include and framework paths. @@ -304,10 +313,8 @@ void CppToolsPlugin::test_modelmanager_refresh_also_includes_of_project_files() part->includePaths = QStringList() << testDataDir.includeDir(false); part->files.append(ProjectFile(testCpp, ProjectFile::CXXSource)); pi.appendProjectPart(part); - mm->updateProjectInfo(pi); - - QStringList refreshedFiles = helper.waitForRefreshedSourceFiles(); + QStringList refreshedFiles = updateProjectInfo(mm, &helper, pi); QCOMPARE(refreshedFiles.size(), 1); QVERIFY(refreshedFiles.contains(testCpp)); CPlusPlus::Snapshot snapshot = mm->snapshot(); @@ -323,9 +330,8 @@ void CppToolsPlugin::test_modelmanager_refresh_also_includes_of_project_files() part->projectDefines = QByteArray("#define TEST_DEFINE 1\n"); pi.clearProjectParts(); pi.appendProjectPart(part); - mm->updateProjectInfo(pi); - refreshedFiles = helper.waitForRefreshedSourceFiles(); + refreshedFiles = updateProjectInfo(mm, &helper, pi); QCOMPARE(refreshedFiles.size(), 1); QVERIFY(refreshedFiles.contains(testCpp)); @@ -385,11 +391,9 @@ void CppToolsPlugin::test_modelmanager_refresh_several_times() part->files.append(ProjectFile(testCpp, ProjectFile::CXXSource)); pi.appendProjectPart(part); - mm->updateProjectInfo(pi); - - refreshedFiles = helper.waitForRefreshedSourceFiles(); - + refreshedFiles = updateProjectInfo(mm, &helper, pi); QCOMPARE(refreshedFiles.size(), 3); + QVERIFY(refreshedFiles.contains(testHeader1)); QVERIFY(refreshedFiles.contains(testHeader2)); QVERIFY(refreshedFiles.contains(testCpp)); @@ -432,8 +436,10 @@ void CppToolsPlugin::test_modelmanager_refresh_test_for_changes() pi.appendProjectPart(part); // Reindexing triggers a reparsing thread + helper.resetRefreshedSourceFiles(); QFuture<void> firstFuture = mm->updateProjectInfo(pi); QVERIFY(firstFuture.isStarted() || firstFuture.isRunning()); + firstFuture.waitForFinished(); const QStringList refreshedFiles = helper.waitForRefreshedSourceFiles(); QCOMPARE(refreshedFiles.size(), 1); QVERIFY(refreshedFiles.contains(testCpp)); @@ -470,8 +476,7 @@ void CppToolsPlugin::test_modelmanager_refresh_added_and_purge_removed() CPlusPlus::Snapshot snapshot; QStringList refreshedFiles; - mm->updateProjectInfo(pi); - refreshedFiles = helper.waitForRefreshedSourceFiles(); + refreshedFiles = updateProjectInfo(mm, &helper, pi); QCOMPARE(refreshedFiles.size(), 2); QVERIFY(refreshedFiles.contains(testHeader1)); @@ -490,8 +495,7 @@ void CppToolsPlugin::test_modelmanager_refresh_added_and_purge_removed() newPart->files.append(ProjectFile(testHeader2, ProjectFile::CXXHeader)); pi.appendProjectPart(newPart); - mm->updateProjectInfo(pi); - refreshedFiles = helper.waitForRefreshedSourceFiles(); + refreshedFiles = updateProjectInfo(mm, &helper, pi); // Only the added project file was reparsed QCOMPARE(refreshedFiles.size(), 1); @@ -530,8 +534,7 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_ CPlusPlus::Snapshot snapshot; QStringList refreshedFiles; - mm->updateProjectInfo(pi); - refreshedFiles = helper.waitForRefreshedSourceFiles(); + refreshedFiles = updateProjectInfo(mm, &helper, pi); QCOMPARE(refreshedFiles.size(), initialProjectFiles.size()); snapshot = mm->snapshot(); @@ -560,8 +563,7 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_ pi.clearProjectParts(); pi.appendProjectPart(part); - mm->updateProjectInfo(pi); - refreshedFiles = helper.waitForRefreshedSourceFiles(); + refreshedFiles = updateProjectInfo(mm, &helper, pi); QCOMPARE(refreshedFiles.size(), finalProjectFiles.size()); snapshot = mm->snapshot(); @@ -618,8 +620,7 @@ void CppToolsPlugin::test_modelmanager_snapshot_after_two_projects() << _("foo.cpp") << _("main.cpp")); - mm->updateProjectInfo(project1.projectInfo); - refreshedFiles = helper.waitForRefreshedSourceFiles(); + refreshedFiles = updateProjectInfo(mm, &helper, project1.projectInfo); QCOMPARE(refreshedFiles.toSet(), project1.projectFiles.toSet()); const int snapshotSizeAfterProject1 = mm->snapshot().size(); @@ -633,8 +634,7 @@ void CppToolsPlugin::test_modelmanager_snapshot_after_two_projects() << _("bar.cpp") << _("main.cpp")); - mm->updateProjectInfo(project2.projectInfo); - refreshedFiles = helper.waitForRefreshedSourceFiles(); + refreshedFiles = updateProjectInfo(mm, &helper, project2.projectInfo); QCOMPARE(refreshedFiles.toSet(), project2.projectFiles.toSet()); const int snapshotSizeAfterProject2 = mm->snapshot().size(); @@ -710,6 +710,7 @@ void CppToolsPlugin::test_modelmanager_gc_if_last_cppeditor_closed() const QString file = testDataDirectory.file(_("main.cpp")); CppModelManager *mm = CppModelManager::instance(); + helper.resetRefreshedSourceFiles(); // Open a file in the editor QCOMPARE(Core::EditorManager::documentModel()->openedDocuments().size(), 0); @@ -740,6 +741,7 @@ void CppToolsPlugin::test_modelmanager_dont_gc_opened_files() const QString file = testDataDirectory.file(_("main.cpp")); CppModelManager *mm = CppModelManager::instance(); + helper.resetRefreshedSourceFiles(); // Open a file in the editor QCOMPARE(Core::EditorManager::documentModel()->openedDocuments().size(), 0); @@ -750,6 +752,7 @@ void CppToolsPlugin::test_modelmanager_dont_gc_opened_files() // Wait until the file is refreshed and check whether it is in the working copy helper.waitForRefreshedSourceFiles(); + QVERIFY(mm->workingCopy().contains(file)); // Run the garbage collector @@ -825,10 +828,7 @@ void CppToolsPlugin::test_modelmanager_defines_per_project() pi.appendProjectPart(part1); pi.appendProjectPart(part2); - mm->updateProjectInfo(pi); - - helper.waitForRefreshedSourceFiles(); - + updateProjectInfo(mm, &helper, pi); QCOMPARE(mm->snapshot().size(), 4); // Open a file in the editor @@ -897,10 +897,7 @@ void CppToolsPlugin::test_modelmanager_defines_per_project_pch() pi.appendProjectPart(part1); pi.appendProjectPart(part2); - mm->updateProjectInfo(pi); - - helper.waitForRefreshedSourceFiles(); - + updateProjectInfo(mm, &helper, pi); QCOMPARE(mm->snapshot().size(), 4); // Open a file in the editor @@ -968,9 +965,7 @@ void CppToolsPlugin::test_modelmanager_defines_per_editor() pi.appendProjectPart(part1); pi.appendProjectPart(part2); - mm->updateProjectInfo(pi); - - helper.waitForRefreshedSourceFiles(); + updateProjectInfo(mm, &helper, pi); QCOMPARE(mm->snapshot().size(), 4); diff --git a/src/plugins/cpptools/modelmanagertesthelper.cpp b/src/plugins/cpptools/modelmanagertesthelper.cpp index 9c139c5a7b..6ca2648ccd 100644 --- a/src/plugins/cpptools/modelmanagertesthelper.cpp +++ b/src/plugins/cpptools/modelmanagertesthelper.cpp @@ -103,10 +103,14 @@ ModelManagerTestHelper::Project *ModelManagerTestHelper::createProject(const QSt return tp; } -QStringList ModelManagerTestHelper::waitForRefreshedSourceFiles() +void ModelManagerTestHelper::resetRefreshedSourceFiles() { + m_lastRefreshedSourceFiles.clear(); m_refreshHappened = false; +} +QStringList ModelManagerTestHelper::waitForRefreshedSourceFiles() +{ while (!m_refreshHappened) QCoreApplication::processEvents(); diff --git a/src/plugins/cpptools/modelmanagertesthelper.h b/src/plugins/cpptools/modelmanagertesthelper.h index 4ed45195cd..3f52924527 100644 --- a/src/plugins/cpptools/modelmanagertesthelper.h +++ b/src/plugins/cpptools/modelmanagertesthelper.h @@ -80,6 +80,7 @@ public: Project *createProject(const QString &name); + void resetRefreshedSourceFiles(); QStringList waitForRefreshedSourceFiles(); void waitForFinishedGc(); diff --git a/src/plugins/cpptools/symbolsearcher_test.cpp b/src/plugins/cpptools/symbolsearcher_test.cpp index c5529b7b46..f11bdbcb8e 100644 --- a/src/plugins/cpptools/symbolsearcher_test.cpp +++ b/src/plugins/cpptools/symbolsearcher_test.cpp @@ -101,12 +101,12 @@ public: { QVERIFY(m_indexingSupportToUse); QVERIFY(m_modelManager->snapshot().isEmpty()); - m_modelManager->updateSourceFiles(QStringList() << m_testFile).waitForFinished(); + m_modelManager->updateSourceFiles(QStringList(m_testFile)).waitForFinished(); + QCoreApplication::processEvents(); QVERIFY(m_modelManager->snapshot().contains(m_testFile)); m_indexingSupportToRestore = m_modelManager->indexingSupport(); m_modelManager->setIndexingSupport(m_indexingSupportToUse); - QCoreApplication::processEvents(); } ResultDataList run(const SymbolSearcher::Parameters &searchParameters) const diff --git a/src/plugins/cpptools/typehierarchybuilder_test.cpp b/src/plugins/cpptools/typehierarchybuilder_test.cpp index 3bcfa05488..dbce776c6b 100644 --- a/src/plugins/cpptools/typehierarchybuilder_test.cpp +++ b/src/plugins/cpptools/typehierarchybuilder_test.cpp @@ -127,10 +127,13 @@ public: // Parse files m_modelManager->updateSourceFiles(filePaths).waitForFinished(); - - // Get class for which to generate the hierarchy + QCoreApplication::processEvents(); const Snapshot snapshot = m_modelManager->snapshot(); QVERIFY(!snapshot.isEmpty()); + foreach (const QString &filePath, filePaths) + QVERIFY(snapshot.contains(filePath)); + + // Get class for which to generate the hierarchy const Document::Ptr firstDocument = snapshot.document(filePaths.first()); Class *clazz = FindFirstClassInDocument()(firstDocument); QVERIFY(clazz); |