diff --git a/src/plugins/clangcodemodel/test/clangcodecompletion_test.cpp b/src/plugins/clangcodemodel/test/clangcodecompletion_test.cpp index 9b938edaf86..80a8cfa7f7a 100644 --- a/src/plugins/clangcodemodel/test/clangcodecompletion_test.cpp +++ b/src/plugins/clangcodemodel/test/clangcodecompletion_test.cpp @@ -1116,6 +1116,30 @@ void ClangCodeCompletionTest::testUnsavedFilesTrackingByModifyingIncludedFileExt QVERIFY(hasItem(proposal, "globalFromHeaderReloaded")); } +void ClangCodeCompletionTest::testUnsavedFilesTrackingByModifyingIncludedFileExternally2() +{ + QSKIP("The file system watcher is doing it in backend process but we wait not long enough"); + + CppTools::Tests::TemporaryDir temporaryDir; + const TestDocument sourceDocument("mysource.cpp", &temporaryDir); + QVERIFY(sourceDocument.isCreatedAndHasValidCursorPosition()); + const TestDocument headerDocument("myheader.h", &temporaryDir); + QVERIFY(headerDocument.isCreated()); + + // Open source and test completions + OpenEditorAtCursorPosition openSource(sourceDocument); + QVERIFY(openSource.succeeded()); + ProposalModel proposal = completionResults(openSource.editor()); + QVERIFY(hasItem(proposal, "globalFromHeader")); + + // Simulate external modification, e.g version control checkout + QVERIFY(writeFile(headerDocument.filePath, "int globalFromHeaderReloaded;\n")); + + // Retrigger completion and check if its updated + proposal = completionResults(openSource.editor()); + QVERIFY(hasItem(proposal, "globalFromHeaderReloaded")); +} + void ClangCodeCompletionTest::testUnsavedFilesTrackingByCompletingUiObject() { CppTools::Tests::TemporaryCopiedDir testDir(qrcPath("qt-widgets-app")); diff --git a/src/plugins/clangcodemodel/test/clangcodecompletion_test.h b/src/plugins/clangcodemodel/test/clangcodecompletion_test.h index 52ff5f172dc..f15c154eca6 100644 --- a/src/plugins/clangcodemodel/test/clangcodecompletion_test.h +++ b/src/plugins/clangcodemodel/test/clangcodecompletion_test.h @@ -65,6 +65,7 @@ private slots: void testUnsavedFilesTrackingByModifyingIncludedFileInCurrentEditor(); void testUnsavedFilesTrackingByModifyingIncludedFileInNotCurrentEditor(); void testUnsavedFilesTrackingByModifyingIncludedFileExternally(); + void testUnsavedFilesTrackingByModifyingIncludedFileExternally2(); void testUnsavedFilesTrackingByCompletingUiObject(); void testUpdateBackendAfterRestart();