Skip to content

Commit f7f1e91

Browse files
committed
t7800: work around the MSYS path conversion on Windows
Git's test suite's relies on Unix shell scripting, which is understandable, of course, given Git's firm roots (and indeed, ongoing focus) on Linux. This fact, combined with Unix shell scripting's natural habitat -- which is, naturally... *drumroll*... Unix -- often has unintended side effects, where developers expect the test suite to run in a Unix environment, which is an incorrect assumption. One instance of this problem can be observed in the 'difftool --dir-diff handles modified symlinks' test case in `t7800-difftool.sh`, which assumes that that all absolute paths start with a forward slash. That assumption is incorrect in general, e.g. on Windows, where absolute paths have many shapes and forms, none of which starts with a forward slash. The only saving grace is that this test case is currently not run on Windows because of the `SYMLINK` prerequisite. However, I am currently working towards upstreaming symbolic link support from Git for Windows to upstream Git, which will put a crack into that saving grace. Let's change that test case so that it does not rely on absolute paths (which are passed to the "external command" `ls` as parameters and are therefore part of its output, and which the test case wants to filter out before verifying that the output is as expected) starting with a forward slash. Let's instead rely on the much more reliable fact that `ls` will output the path in a line that ends in a colon, and simply filter out those lines by matching said colon instead. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1 parent b622ff8 commit f7f1e91

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

t/t7800-difftool.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -752,11 +752,11 @@ test_expect_success SYMLINKS 'difftool --dir-diff handles modified symlinks' '
752752
c
753753
EOF
754754
git difftool --symlinks --dir-diff --extcmd ls >output &&
755-
grep -v ^/ output >actual &&
755+
grep -v ":\$" output >actual &&
756756
test_cmp expect actual &&
757757
758758
git difftool --no-symlinks --dir-diff --extcmd ls >output &&
759-
grep -v ^/ output >actual &&
759+
grep -v ":\$" output >actual &&
760760
test_cmp expect actual &&
761761
762762
# The left side contains symlink "c" that points to "b"
@@ -786,11 +786,11 @@ test_expect_success SYMLINKS 'difftool --dir-diff handles modified symlinks' '
786786
787787
EOF
788788
git difftool --symlinks --dir-diff --extcmd ls >output &&
789-
grep -v ^/ output >actual &&
789+
grep -v ":\$" output >actual &&
790790
test_cmp expect actual &&
791791
792792
git difftool --no-symlinks --dir-diff --extcmd ls >output &&
793-
grep -v ^/ output >actual &&
793+
grep -v ":\$" output >actual &&
794794
test_cmp expect actual
795795
'
796796

0 commit comments

Comments
 (0)