Author: Kadir Cetinkaya Date: 2020-05-09T18:15:27+02:00 New Revision: c746781f5085a965cfc64bd8ddf904217b797ab8
URL: https://github.com/llvm/llvm-project/commit/c746781f5085a965cfc64bd8ddf904217b797ab8 DIFF: https://github.com/llvm/llvm-project/commit/c746781f5085a965cfc64bd8ddf904217b797ab8.diff LOG: [clangd] Fix data race in BackgroundIndex test MockFSProvider is not thread-safe. Make sure we don't modify it while background index is working. Added: Modified: clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp b/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp index 934f1abb1a7c..b870a8ed5a83 100644 --- a/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp +++ b/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp @@ -443,6 +443,7 @@ TEST_F(BackgroundIndexTest, NoDotsInAbsPath) { OverlayCDB CDB(/*Base=*/nullptr); BackgroundIndex Idx(Context::empty(), FS, CDB, [&](llvm::StringRef) { return &MSS; }); + ASSERT_TRUE(Idx.blockUntilIdleForTest()); tooling::CompileCommand Cmd; FS.Files[testPath("root/A.cc")] = ""; @@ -450,14 +451,15 @@ TEST_F(BackgroundIndexTest, NoDotsInAbsPath) { Cmd.Directory = testPath("root/build"); Cmd.CommandLine = {"clang++", "../A.cc"}; CDB.setCompileCommand(testPath("root/build/../A.cc"), Cmd); + ASSERT_TRUE(Idx.blockUntilIdleForTest()); FS.Files[testPath("root/B.cc")] = ""; Cmd.Filename = "./B.cc"; Cmd.Directory = testPath("root"); Cmd.CommandLine = {"clang++", "./B.cc"}; CDB.setCompileCommand(testPath("root/./B.cc"), Cmd); - ASSERT_TRUE(Idx.blockUntilIdleForTest()); + for (llvm::StringRef AbsPath : MSS.AccessedPaths.keys()) { EXPECT_FALSE(AbsPath.contains("./")) << AbsPath; EXPECT_FALSE(AbsPath.contains("../")) << AbsPath; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits