]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t7800: run --dir-diff tests with and without symlinks
authorJohn Keeping <john@keeping.me.uk>
Fri, 29 Mar 2013 11:28:36 +0000 (11:28 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 29 Mar 2013 22:16:40 +0000 (15:16 -0700)
Currently the difftool --dir-diff tests may or may not use symlinks
depending on the operating system on which they are run.  In one case
this has caused a test failure to be noticed only on Windows when the
test also fails on Linux when difftool is invoked with --no-symlinks.

Rewrite these tests so that they do not depend on the environment but
run explicitly with both --symlinks and --no-symlinks, protecting the
--symlinks version with a SYMLINKS prerequisite.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t7800-difftool.sh

index df443a981d8bcbcad8af51463e1d13b1c4177bb5..a6bd99eaf51943a899aa5e5801479b0a84b6b692 100755 (executable)
@@ -318,28 +318,39 @@ test_expect_success PERL 'setup change in subdirectory' '
        git commit -m "modified both"
 '
 
-test_expect_success PERL 'difftool -d' '
-       git difftool -d --extcmd ls branch >output &&
+run_dir_diff_test () {
+       test_expect_success PERL "$1 --no-symlinks" "
+               symlinks=--no-symlinks &&
+               $2
+       "
+       test_expect_success PERL,SYMLINKS "$1 --symlinks" "
+               symlinks=--symlinks &&
+               $2
+       "
+}
+
+run_dir_diff_test 'difftool -d' '
+       git difftool -d $symlinks --extcmd ls branch >output &&
        grep sub output &&
        grep file output
 '
 
-test_expect_success PERL 'difftool --dir-diff' '
-       git difftool --dir-diff --extcmd ls branch >output &&
+run_dir_diff_test 'difftool --dir-diff' '
+       git difftool --dir-diff $symlinks --extcmd ls branch >output &&
        grep sub output &&
        grep file output
 '
 
-test_expect_success PERL 'difftool --dir-diff ignores --prompt' '
-       git difftool --dir-diff --prompt --extcmd ls branch >output &&
+run_dir_diff_test 'difftool --dir-diff ignores --prompt' '
+       git difftool --dir-diff $symlinks --prompt --extcmd ls branch >output &&
        grep sub output &&
        grep file output
 '
 
-test_expect_success PERL 'difftool --dir-diff from subdirectory' '
+run_dir_diff_test 'difftool --dir-diff from subdirectory' '
        (
                cd sub &&
-               git difftool --dir-diff --extcmd ls branch >output &&
+               git difftool --dir-diff $symlinks --extcmd ls branch >output &&
                grep sub output &&
                grep file output
        )