[llvm] r204579 - SupportTests.LockFileManagerTest: Add assertions for Win32.

NAKAMURA Takumi geek4civic at gmail.com
Sun Mar 23 16:55:57 PDT 2014


Author: chapuni
Date: Sun Mar 23 18:55:57 2014
New Revision: 204579

URL: http://llvm.org/viewvc/llvm-project?rev=204579&view=rev
Log:
SupportTests.LockFileManagerTest: Add assertions for Win32.

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

Modified:
    llvm/trunk/unittests/Support/LockFileManagerTest.cpp

Modified: llvm/trunk/unittests/Support/LockFileManagerTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/LockFileManagerTest.cpp?rev=204579&r1=204578&r2=204579&view=diff
==============================================================================
--- llvm/trunk/unittests/Support/LockFileManagerTest.cpp (original)
+++ llvm/trunk/unittests/Support/LockFileManagerTest.cpp Sun Mar 23 18:55:57 2014
@@ -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





More information about the llvm-commits mailing list