1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-02-01 05:01:59 +01:00

SupportTests.LockFileManagerTest: Add assertions for Win32.

- create_link doesn't work for nonexistent file.
  - remove cannot remove working directory.

llvm-svn: 204579
This commit is contained in:
NAKAMURA Takumi 2014-03-23 23:55:57 +00:00
parent 9c4ecc2b1f
commit 207fc57ce7

View File

@ -44,7 +44,6 @@ TEST(LockFileManagerTest, Basic) {
ASSERT_FALSE(EC); ASSERT_FALSE(EC);
} }
#if !defined(_WIN32)
TEST(LockFileManagerTest, LinkLockExists) { TEST(LockFileManagerTest, LinkLockExists) {
SmallString<64> TmpDir; SmallString<64> TmpDir;
error_code EC; error_code EC;
@ -61,7 +60,13 @@ TEST(LockFileManagerTest, LinkLockExists) {
sys::path::append(TmpFileLock, "file.lock-000"); sys::path::append(TmpFileLock, "file.lock-000");
EC = sys::fs::create_link(TmpFileLock.str(), FileLocK.str()); EC = sys::fs::create_link(TmpFileLock.str(), FileLocK.str());
#if defined(_WIN32)
// Win32 cannot create link with nonexistent file, since create_link is
// implemented as hard link.
ASSERT_EQ(EC, errc::no_such_file_or_directory);
#else
ASSERT_FALSE(EC); ASSERT_FALSE(EC);
#endif
{ {
// The lock file doesn't point to a real file, so we should successfully // The lock file doesn't point to a real file, so we should successfully
@ -109,10 +114,19 @@ TEST(LockFileManagerTest, RelativePath) {
EC = sys::fs::remove("inner"); EC = sys::fs::remove("inner");
ASSERT_FALSE(EC); ASSERT_FALSE(EC);
EC = sys::fs::remove(StringRef(TmpDir)); EC = sys::fs::remove(StringRef(TmpDir));
#if defined(_WIN32)
// Win32 cannot remove working directory.
ASSERT_EQ(EC, errc::permission_denied);
#else
ASSERT_FALSE(EC); ASSERT_FALSE(EC);
chdir(OrigPath);
}
#endif #endif
chdir(OrigPath);
#if defined(_WIN32)
EC = sys::fs::remove(StringRef(TmpDir));
ASSERT_FALSE(EC);
#endif
}
} // end anonymous namespace } // end anonymous namespace