aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/Support/LockFileManagerTest.cpp
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2014-03-23 23:55:57 +0000
committerNAKAMURA Takumi <geek4civic@gmail.com>2014-03-23 23:55:57 +0000
commit126a6c023820a9b9b84974d6204e171674c89fda (patch)
treea70fbfd818061da61839914586cc124831d50575 /llvm/unittests/Support/LockFileManagerTest.cpp
parentf3f0b96abd3036a45c4e9d8dff41ca1b311aec8a (diff)
downloadllvm-126a6c023820a9b9b84974d6204e171674c89fda.zip
llvm-126a6c023820a9b9b84974d6204e171674c89fda.tar.gz
llvm-126a6c023820a9b9b84974d6204e171674c89fda.tar.bz2
SupportTests.LockFileManagerTest: Add assertions for Win32.
- create_link doesn't work for nonexistent file. - remove cannot remove working directory. llvm-svn: 204579
Diffstat (limited to 'llvm/unittests/Support/LockFileManagerTest.cpp')
-rw-r--r--llvm/unittests/Support/LockFileManagerTest.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/llvm/unittests/Support/LockFileManagerTest.cpp b/llvm/unittests/Support/LockFileManagerTest.cpp
index 79f4519..b80cdf9 100644
--- a/llvm/unittests/Support/LockFileManagerTest.cpp
+++ b/llvm/unittests/Support/LockFileManagerTest.cpp
@@ -44,7 +44,6 @@ TEST(LockFileManagerTest, Basic) {
ASSERT_FALSE(EC);
}
-#if !defined(_WIN32)
TEST(LockFileManagerTest, LinkLockExists) {
SmallString<64> TmpDir;
error_code EC;
@@ -61,7 +60,13 @@ TEST(LockFileManagerTest, LinkLockExists) {
sys::path::append(TmpFileLock, "file.lock-000");
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);
+#endif
{
// 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");
ASSERT_FALSE(EC);
EC = sys::fs::remove(StringRef(TmpDir));
+#if defined(_WIN32)
+ // Win32 cannot remove working directory.
+ ASSERT_EQ(EC, errc::permission_denied);
+#else
ASSERT_FALSE(EC);
+#endif
chdir(OrigPath);
-}
+
+#if defined(_WIN32)
+ EC = sys::fs::remove(StringRef(TmpDir));
+ ASSERT_FALSE(EC);
#endif
+}
} // end anonymous namespace