[llvm] r204719 - Fix these tests on windows.

Rafael Espindola rafael.espindola at gmail.com
Tue Mar 25 06:19:04 PDT 2014


Author: rafael
Date: Tue Mar 25 08:19:03 2014
New Revision: 204719

URL: http://llvm.org/viewvc/llvm-project?rev=204719&view=rev
Log:
Fix these tests on windows.

It is impossible to create a hard link to a non existing file, so create a
dummy file, create the link an delete the dummy file.

On windows one cannot remove the current directory, so chdir first.

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=204719&r1=204718&r2=204719&view=diff
==============================================================================
--- llvm/trunk/unittests/Support/LockFileManagerTest.cpp (original)
+++ llvm/trunk/unittests/Support/LockFileManagerTest.cpp Tue Mar 25 08:19:03 2014
@@ -59,14 +59,18 @@ TEST(LockFileManagerTest, LinkLockExists
   SmallString<64> TmpFileLock(TmpDir);
   sys::path::append(TmpFileLock, "file.lock-000");
 
+  int FD;
+  EC = sys::fs::openFileForWrite(StringRef(TmpFileLock), FD, sys::fs::F_None);
+  ASSERT_FALSE(EC);
+
+  int Ret = close(FD);
+  ASSERT_EQ(Ret, 0);
+
   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
+
+  EC = sys::fs::remove(StringRef(TmpFileLock));
+  ASSERT_FALSE(EC);
 
   {
     // The lock file doesn't point to a real file, so we should successfully
@@ -113,20 +117,11 @@ 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