diff options
author | Gabor Horvath <xazax.hun@gmail.com> | 2017-10-27 12:53:37 +0000 |
---|---|---|
committer | Gabor Horvath <xazax.hun@gmail.com> | 2017-10-27 12:53:37 +0000 |
commit | 224b1ed240890583d9623dfe9f63b81f14a05b99 (patch) | |
tree | c9637454811de4779b7d906fb9c7a471d05e0e0d /unittests | |
parent | d2d3a85d2777c75fdda6b69b7b62c0361015288a (diff) |
[CrossTU] Fix handling of Cross Translation Unit directory path
Differential Revision: https://reviews.llvm.org/D38842
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316764 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'unittests')
-rw-r--r-- | unittests/CrossTU/CrossTranslationUnitTest.cpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/unittests/CrossTU/CrossTranslationUnitTest.cpp b/unittests/CrossTU/CrossTranslationUnitTest.cpp index 795a4351b5..5fbf56ed43 100644 --- a/unittests/CrossTU/CrossTranslationUnitTest.cpp +++ b/unittests/CrossTU/CrossTranslationUnitTest.cpp @@ -109,9 +109,9 @@ TEST(CrossTranslationUnit, CanLoadFunctionDefinition) { TEST(CrossTranslationUnit, IndexFormatCanBeParsed) { llvm::StringMap<std::string> Index; - Index["a"] = "b"; - Index["c"] = "d"; - Index["e"] = "f"; + Index["a"] = "/b/f1"; + Index["c"] = "/d/f2"; + Index["e"] = "/f/f3"; std::string IndexText = createCrossTUIndexString(Index); int IndexFD; @@ -134,5 +134,25 @@ TEST(CrossTranslationUnit, IndexFormatCanBeParsed) { EXPECT_TRUE(Index.count(E.getKey())); } +TEST(CrossTranslationUnit, CTUDirIsHandledCorrectly) { + llvm::StringMap<std::string> Index; + Index["a"] = "/b/c/d"; + std::string IndexText = createCrossTUIndexString(Index); + + int IndexFD; + llvm::SmallString<256> IndexFileName; + ASSERT_FALSE(llvm::sys::fs::createTemporaryFile("index", "txt", IndexFD, + IndexFileName)); + llvm::ToolOutputFile IndexFile(IndexFileName, IndexFD); + IndexFile.os() << IndexText; + IndexFile.os().flush(); + EXPECT_TRUE(llvm::sys::fs::exists(IndexFileName)); + llvm::Expected<llvm::StringMap<std::string>> IndexOrErr = + parseCrossTUIndex(IndexFileName, "/ctudir"); + EXPECT_TRUE((bool)IndexOrErr); + llvm::StringMap<std::string> ParsedIndex = IndexOrErr.get(); + EXPECT_EQ(ParsedIndex["a"], "/ctudir/b/c/d"); +} + } // end namespace cross_tu } // end namespace clang |