Skip to content

Commit aed0eb1

Browse files
committed
t6423: introduce Windows-specific handling for symlinking to /dev/null
The device `/dev/null` does not exist on Windows, it's called `NUL` there. Calling `ln -s /dev/null my-symlink` in a symlink-enabled MSYS2 Bash will therefore literally link to a file or directory called `null` that is supposed to be in the current drive's top-level `dev` directory. Which typically does not exist. The test, however, really wants the created symbolic link to point to the NUL device. Let's instead use the `mklink` utility on Windows to perform that job, and keep using `ln -s /dev/null <target>` on non-Windows platforms. While at it, add the missing `SYMLINKS` prereq because this test _still_ would not pass on Windows before support for symbolic links is upstreamed from Git for Windows. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1 parent 95efb6b commit aed0eb1

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

t/t6423-merge-rename-directories.sh

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5158,13 +5158,18 @@ test_setup_12m () {
51585158
git switch B &&
51595159
git rm dir/subdir/file &&
51605160
mkdir dir &&
5161-
ln -s /dev/null dir/subdir &&
5161+
if test_have_prereq MINGW
5162+
then
5163+
cmd //c 'mklink dir\subdir NUL'
5164+
else
5165+
ln -s /dev/null dir/subdir
5166+
fi &&
51625167
git add . &&
51635168
git commit -m "B"
51645169
)
51655170
}
51665171

5167-
test_expect_success '12m: Change parent of renamed-dir to symlink on other side' '
5172+
test_expect_success SYMLINKS '12m: Change parent of renamed-dir to symlink on other side' '
51685173
test_setup_12m &&
51695174
(
51705175
cd 12m &&

0 commit comments

Comments
 (0)