diff options
author | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-07-18 10:57:19 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-08-08 12:12:08 +0200 |
commit | 7583039b87c2908d40017ba1c245fed0b471c0f9 (patch) | |
tree | 841318daad7e0ee6263a67140e27b2d97f600bec /src/plugins/cpptools/cppmodelmanager_test.cpp | |
parent | 4bc61ecac4701a0e4f4fa5c7e48986dcd687c11a (diff) | |
download | qt-creator-7583039b87c2908d40017ba1c245fed0b471c0f9.tar.gz |
CppTools: Do not call GC() more than necessary
Currently GC() is invoked if
- 5 CppEditors were closed or the last CppEditor was closed
- a project is about to be removed
- a session is about to be unloaded
Thus, for the following use cases, too much GC() calls (can) happen:
- File > Close All
- Close All Projects and Editors
- Changing the session
Fixed by introducing a timer.
Change-Id: I9c984d9de735fc8c6ee77a518e9fb5b63dba5881
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'src/plugins/cpptools/cppmodelmanager_test.cpp')
-rw-r--r-- | src/plugins/cpptools/cppmodelmanager_test.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/plugins/cpptools/cppmodelmanager_test.cpp b/src/plugins/cpptools/cppmodelmanager_test.cpp index 669c086d52..7e649a9c01 100644 --- a/src/plugins/cpptools/cppmodelmanager_test.cpp +++ b/src/plugins/cpptools/cppmodelmanager_test.cpp @@ -472,6 +472,8 @@ void CppToolsPlugin::test_modelmanager_snapshot_after_two_projects() /// though it might not be actually generated in the build dir. void CppToolsPlugin::test_modelmanager_extraeditorsupport_uiFiles() { + ModelManagerTestHelper helper; + TestDataDirectory testDataDirectory(QLatin1String("testdata_guiproject1")); const QString projectFile = testDataDirectory.file(QLatin1String("testdata_guiproject1.pro")); @@ -515,13 +517,15 @@ void CppToolsPlugin::test_modelmanager_extraeditorsupport_uiFiles() // Close Project ProjectExplorer::SessionManager *sm = pe->session(); sm->removeProject(project); - ModelManagerTestHelper::verifyClean(); + helper.waitForFinishedGc(); } /// QTCREATORBUG-9828: Locator shows symbols of closed files /// Check: The garbage collector should be run if the last CppEditor is closed. void CppToolsPlugin::test_modelmanager_gc_if_last_cppeditor_closed() { + ModelManagerTestHelper helper; + TestDataDirectory testDataDirectory(QLatin1String("testdata_guiproject1")); const QString file = testDataDirectory.file(QLatin1String("main.cpp")); @@ -541,6 +545,7 @@ void CppToolsPlugin::test_modelmanager_gc_if_last_cppeditor_closed() // Close file/editor em->closeEditor(editor, /*askAboutModifiedEditors=*/ false); + helper.waitForFinishedGc(); // Check: File is removed from the snapshpt QVERIFY(!mm->workingCopy().contains(file)); |