Imported Upstream version 2.20.0
[platform/upstream/git.git] / t / t4011-diff-symlink.sh
index f0d5041..5ae19b9 100755 (executable)
@@ -9,7 +9,7 @@ test_description='Test diff of symlinks.
 . ./test-lib.sh
 . "$TEST_DIRECTORY"/diff-lib.sh
 
-test_expect_success SYMLINKS 'diff new symlink and file' '
+test_expect_success 'diff new symlink and file' '
        cat >expected <<-\EOF &&
        diff --git a/frotz b/frotz
        new file mode 120000
@@ -27,22 +27,25 @@ test_expect_success SYMLINKS 'diff new symlink and file' '
        @@ -0,0 +1 @@
        +xyzzy
        EOF
-       ln -s xyzzy frotz &&
-       echo xyzzy >nitfol &&
+
+       # the empty tree
        git update-index &&
        tree=$(git write-tree) &&
-       git update-index --add frotz nitfol &&
+
+       test_ln_s_add xyzzy frotz &&
+       echo xyzzy >nitfol &&
+       git update-index --add nitfol &&
        GIT_DIFF_OPTS=--unified=0 git diff-index -M -p $tree >current &&
        compare_diff_patch expected current
 '
 
-test_expect_success SYMLINKS 'diff unchanged symlink and file'  '
+test_expect_success 'diff unchanged symlink and file'  '
        tree=$(git write-tree) &&
        git update-index frotz nitfol &&
        test -z "$(git diff-index --name-only $tree)"
 '
 
-test_expect_success SYMLINKS 'diff removed symlink and file' '
+test_expect_success 'diff removed symlink and file' '
        cat >expected <<-\EOF &&
        diff --git a/frotz b/frotz
        deleted file mode 120000
@@ -66,12 +69,18 @@ test_expect_success SYMLINKS 'diff removed symlink and file' '
        compare_diff_patch expected current
 '
 
-test_expect_success SYMLINKS 'diff identical, but newly created symlink and file' '
+test_expect_success 'diff identical, but newly created symlink and file' '
        >expected &&
        rm -f frotz nitfol &&
        echo xyzzy >nitfol &&
-       test-chmtime +10 nitfol &&
-       ln -s xyzzy frotz &&
+       test-tool chmtime +10 nitfol &&
+       if test_have_prereq SYMLINKS
+       then
+               ln -s xyzzy frotz
+       else
+               printf xyzzy >frotz
+               # the symlink property propagates from the index
+       fi &&
        git diff-index -M -p $tree >current &&
        compare_diff_patch expected current &&
 
@@ -80,7 +89,7 @@ test_expect_success SYMLINKS 'diff identical, but newly created symlink and file
        compare_diff_patch expected current
 '
 
-test_expect_success SYMLINKS 'diff different symlink and file' '
+test_expect_success 'diff different symlink and file' '
        cat >expected <<-\EOF &&
        diff --git a/frotz b/frotz
        index 7c465af..df1db54 120000
@@ -100,7 +109,13 @@ test_expect_success SYMLINKS 'diff different symlink and file' '
        +yxyyz
        EOF
        rm -f frotz &&
-       ln -s yxyyz frotz &&
+       if test_have_prereq SYMLINKS
+       then
+               ln -s yxyyz frotz
+       else
+               printf yxyyz >frotz
+               # the symlink property propagates from the index
+       fi &&
        echo yxyyz >nitfol &&
        git diff-index -M -p $tree >current &&
        compare_diff_patch expected current
@@ -111,7 +126,7 @@ test_expect_success SYMLINKS 'diff symlinks with non-existing targets' '
        ln -s take\ over brain &&
        test_must_fail git diff --no-index pinky brain >output 2>output.err &&
        grep narf output &&
-       ! test -s output.err
+       test_must_be_empty output.err
 '
 
 test_expect_success SYMLINKS 'setup symlinks with attributes' '
@@ -124,11 +139,13 @@ test_expect_success SYMLINKS 'setup symlinks with attributes' '
 test_expect_success SYMLINKS 'symlinks do not respect userdiff config by path' '
        cat >expect <<-\EOF &&
        diff --git a/file.bin b/file.bin
-       index e69de29..d95f3ad 100644
-       Binary files a/file.bin and b/file.bin differ
+       new file mode 100644
+       index 0000000..d95f3ad
+       Binary files /dev/null and b/file.bin differ
        diff --git a/link.bin b/link.bin
-       index e69de29..dce41ec 120000
-       --- a/link.bin
+       new file mode 120000
+       index 0000000..dce41ec
+       --- /dev/null
        +++ b/link.bin
        @@ -0,0 +1 @@
        +file.bin