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

Rafael EspĂ­ndola rafael.espindola at gmail.com
Sun Mar 23 21:08:52 PDT 2014


Argyrios, is this representative of how the lock manager is used? If
so, it looks like it would not work on windows. If not, could you
please update the test to avoid the ifdefs? For example, you could
create the link to an existing file and then delete that file.

On 23 March 2014 19:55, NAKAMURA Takumi <geek4civic at gmail.com> wrote:
> 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
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list