mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-27 16:17:17 +00:00
Support/FileSystem: Implement canonicalize.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146363 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -304,4 +304,32 @@ TEST_F(FileSystemTest, Magic) {
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(FileSystemTest, Canonicalize) {
|
||||
SmallString<128> file_pathname(TestDirectory);
|
||||
path::append(file_pathname, "canonicalize", "a0", "aa1");
|
||||
|
||||
bool existed;
|
||||
ASSERT_NO_ERROR(fs::create_directories(Twine(TestDirectory)
|
||||
+ "/canonicalize/a0/aa1", existed));
|
||||
|
||||
{
|
||||
path::append(file_pathname, "file.txt");
|
||||
std::string ErrMsg;
|
||||
raw_fd_ostream file(file_pathname.c_str(), ErrMsg);
|
||||
file << "hello\n";
|
||||
}
|
||||
|
||||
SmallString<0> res;
|
||||
ASSERT_NO_ERROR(fs::canonicalize(Twine(TestDirectory)
|
||||
+ "/cAnOnIcAlIzE/A0/aA1/fIlE.TxT", res));
|
||||
// Only check if we actually found the file. As we won't find it on case
|
||||
// sensitive file systems.
|
||||
if (fs::exists(res.str())) {
|
||||
ASSERT_TRUE(res.str().find("canonicalize") != StringRef::npos);
|
||||
ASSERT_TRUE(res.str().find("a0") != StringRef::npos);
|
||||
ASSERT_TRUE(res.str().find("aa1") != StringRef::npos);
|
||||
ASSERT_TRUE(res.str().find("file.txt") != StringRef::npos);
|
||||
}
|
||||
}
|
||||
|
||||
} // anonymous namespace
|
||||
|
Reference in New Issue
Block a user