diff options
Diffstat (limited to 'src/plugins/cpptools/cpptoolstestcase.cpp')
-rw-r--r-- | src/plugins/cpptools/cpptoolstestcase.cpp | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/src/plugins/cpptools/cpptoolstestcase.cpp b/src/plugins/cpptools/cpptoolstestcase.cpp index b9ba701aeb..8040e3f811 100644 --- a/src/plugins/cpptools/cpptoolstestcase.cpp +++ b/src/plugins/cpptools/cpptoolstestcase.cpp @@ -226,22 +226,17 @@ QList<CPlusPlus::Document::Ptr> TestCase::waitForFilesInGlobalSnapshot(const QSt return result; } -bool TestCase::waitUntilCppModelManagerIsAwareOf(Project *project, int timeOutInMs) +bool TestCase::waitUntilProjectIsFullyOpened(Project *project, int timeOutInMs) { if (!project) return false; - QElapsedTimer t; - t.start(); - - CppModelManager *modelManager = CppModelManager::instance(); - forever { - if (modelManager->projectInfo(project).isValid()) - return true; - if (t.elapsed() > timeOutInMs) - return false; - QCoreApplication::processEvents(); - } + return QTest::qWaitFor( + [project]() { + return !project->isParsing() + && CppModelManager::instance()->projectInfo(project).isValid(); + }, + timeOutInMs); } bool TestCase::writeFile(const QString &filePath, const QByteArray &contents) @@ -293,7 +288,7 @@ ProjectInfo ProjectOpenerAndCloser::open(const QString &projectFile, bool config if (configureAsExampleProject) project->configureAsExampleProject(); - if (TestCase::waitUntilCppModelManagerIsAwareOf(project)) { + if (TestCase::waitUntilProjectIsFullyOpened(project)) { m_openProjects.append(project); return CppModelManager::instance()->projectInfo(project); } |