[llvm-bugs] [Bug 41042] New: 9 clang-move tests failing after r332717 on Windows when run through a directory junction

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Mar 12 04:00:07 PDT 2019


https://bugs.llvm.org/show_bug.cgi?id=41042

            Bug ID: 41042
           Summary: 9 clang-move tests failing after r332717 on Windows
                    when run through a directory junction
           Product: new-bugs
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: douglas_yung at playstation.sony.com
                CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org

After upstream commit r332717, 9 clang-move tests started to fail when run on
Windows in a directory that is under an NTFS junction point.

The specific tests that fail are the following:

      Clang Tools :: clang-move/move-class.cpp
      Clang Tools :: clang-move/move-enum-decl.cpp
      Clang Tools :: clang-move/move-function.cpp
      Clang Tools :: clang-move/move-multiple-classes.cpp
      Clang Tools :: clang-move/move-template-class.cpp
      Clang Tools :: clang-move/move-type-alias.cpp
      Clang Tools :: clang-move/move-used-helper-decls.cpp
      Clang Tools :: clang-move/move-var.cpp
      Clang Tools :: clang-move/no-move-macro-helpers.cpp

In each of these test failures, what happens is the clang-move command is run,
and it is expected to produce a new file that FileCheck tries to inspect.
FileCheck fails because the newly generated file is empty.

To reproduce this, you need a Windows system, and the sources in a directory
that is accessed through an NTFS junction point. Here is my setup:

Source location: D:\src\upstream\llvm_clean
Junction point is located at C:\src\upstream which points to D:\src\upstream.

Here is what the Windows dir command returns when run in C:\src:

C:\src>dir
 Volume in drive C is Windows
 Volume Serial Number is 1C54-5FD7

 Directory of C:\src

10/31/2018  16:36    <DIR>          .
10/31/2018  16:36    <DIR>          ..
10/31/2018  16:35    <JUNCTION>     upstream [D:\src\upstream]

To create a junction point in Windows, the underlying filesystem must be NTFS.
You can create a junction point using the "mklink" command like this:

mklink /J <junction name> <target directory>

So for example, running "mklink /J C:\src\foo C:\src\bar" would create a
junction point named "foo" in C:\src that points to C:\src\bar.

The simplest way to reproduce this if you already have a Windows setup with
your sources in C:\src\llvm for example would be to create a junction point
that points to the existing location, and then run the test from under the
junction point.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190312/3d562182/attachment-0001.html>


More information about the llvm-bugs mailing list