diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-03-25 13:19:03 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-03-25 13:19:03 +0000 |
commit | 2cf1cdfb4e57ca5496687a625a642c1a0b5fecfb (patch) | |
tree | d5c8f0b5dd70de07a8d994461b8b32f3de9fdae4 /unittests | |
parent | 800399636a43813c1f11a13eaaab7602b15797a5 (diff) | |
download | llvm-2cf1cdfb4e57ca5496687a625a642c1a0b5fecfb.tar.gz llvm-2cf1cdfb4e57ca5496687a625a642c1a0b5fecfb.tar.bz2 llvm-2cf1cdfb4e57ca5496687a625a642c1a0b5fecfb.tar.xz |
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204719 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'unittests')
-rw-r--r-- | unittests/Support/LockFileManagerTest.cpp | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/unittests/Support/LockFileManagerTest.cpp b/unittests/Support/LockFileManagerTest.cpp index b80cdf9b66..93fa10bee0 100644 --- a/unittests/Support/LockFileManagerTest.cpp +++ b/unittests/Support/LockFileManagerTest.cpp @@ -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 |