forked from OSchip/llvm-project
[libclang] Fix LibclangReparseTest.FileName when TMPDIR is set to a symlink
Fix testing of clang_File_tryGetRealPathName() in LibclangReparseTest.FileName when executing in an environment which has TMPDIR set to a symbolic link that points to an actual directory. The test would fail because the name returned by clang_File_tryGetRealPathName() has the symlink resolved but the test compared it to the original filename of a temporary file. The patch addresses the problem by checking only that the value returned by clang_File_tryGetRealPathName() ends with "main.cpp". Additionally, the patch makes the previous assertion in the test that checks result of clang_getFileName() stricter. It newly verifies that the name returned by the function is exactly same as what was given to clang_parseTranslationUnit()/clang_getFile(). Differential Revision: https://reviews.llvm.org/D45807 llvm-svn: 330507
This commit is contained in:
parent
d73bd154d9
commit
b25187adfb
|
@ -8,6 +8,7 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "clang-c/Index.h"
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "llvm/Support/Debug.h"
|
||||
#include "llvm/Support/FileSystem.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
|
@ -490,11 +491,11 @@ TEST_F(LibclangReparseTest, FileName) {
|
|||
CXFile cxf = clang_getFile(ClangTU, CppName.c_str());
|
||||
|
||||
CXString cxname = clang_getFileName(cxf);
|
||||
ASSERT_TRUE(strstr(clang_getCString(cxname), CppName.c_str()));
|
||||
ASSERT_STREQ(clang_getCString(cxname), CppName.c_str());
|
||||
clang_disposeString(cxname);
|
||||
|
||||
cxname = clang_File_tryGetRealPathName(cxf);
|
||||
ASSERT_TRUE(strstr(clang_getCString(cxname), CppName.c_str()));
|
||||
ASSERT_TRUE(llvm::StringRef(clang_getCString(cxname)).endswith("main.cpp"));
|
||||
clang_disposeString(cxname);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue