]> git.ipfire.org Git - thirdparty/git.git/blobdiff - t/t4011-diff-symlink.sh
Merge branch 'jk/rev-list-disk-usage'
[thirdparty/git.git] / t / t4011-diff-symlink.sh
index cf0f3a1ee75dd28c6b5ce2a5db7c3ad6afafd21f..5a25c259fe333912ba1614c2e645e03e5bdd6e02 100755 (executable)
@@ -7,13 +7,26 @@ test_description='Test diff of symlinks.
 
 '
 . ./test-lib.sh
-. "$TEST_DIRECTORY"/diff-lib.sh
+. "$TEST_DIRECTORY"/lib-diff.sh
+
+# Print the short OID of a symlink with the given name.
+symlink_oid () {
+       local oid=$(printf "%s" "$1" | git hash-object --stdin) &&
+       git rev-parse --short "$oid"
+}
+
+# Print the short OID of the given file.
+short_oid () {
+       local oid=$(git hash-object "$1") &&
+       git rev-parse --short "$oid"
+}
 
 test_expect_success 'diff new symlink and file' '
-       cat >expected <<-\EOF &&
+       symlink=$(symlink_oid xyzzy) &&
+       cat >expected <<-EOF &&
        diff --git a/frotz b/frotz
        new file mode 120000
-       index 0000000..7c465af
+       index 0000000..$symlink
        --- /dev/null
        +++ b/frotz
        @@ -0,0 +1 @@
@@ -21,7 +34,7 @@ test_expect_success 'diff new symlink and file' '
        \ No newline at end of file
        diff --git a/nitfol b/nitfol
        new file mode 100644
-       index 0000000..7c465af
+       index 0000000..$symlink
        --- /dev/null
        +++ b/nitfol
        @@ -0,0 +1 @@
@@ -46,10 +59,10 @@ test_expect_success 'diff unchanged symlink and file'  '
 '
 
 test_expect_success 'diff removed symlink and file' '
-       cat >expected <<-\EOF &&
+       cat >expected <<-EOF &&
        diff --git a/frotz b/frotz
        deleted file mode 120000
-       index 7c465af..0000000
+       index $symlink..0000000
        --- a/frotz
        +++ /dev/null
        @@ -1 +0,0 @@
@@ -57,7 +70,7 @@ test_expect_success 'diff removed symlink and file' '
        \ No newline at end of file
        diff --git a/nitfol b/nitfol
        deleted file mode 100644
-       index 7c465af..0000000
+       index $symlink..0000000
        --- a/nitfol
        +++ /dev/null
        @@ -1 +0,0 @@
@@ -90,9 +103,10 @@ test_expect_success 'diff identical, but newly created symlink and file' '
 '
 
 test_expect_success 'diff different symlink and file' '
-       cat >expected <<-\EOF &&
+       new=$(symlink_oid yxyyz) &&
+       cat >expected <<-EOF &&
        diff --git a/frotz b/frotz
-       index 7c465af..df1db54 120000
+       index $symlink..$new 120000
        --- a/frotz
        +++ b/frotz
        @@ -1 +1 @@
@@ -101,7 +115,7 @@ test_expect_success 'diff different symlink and file' '
        +yxyyz
        \ No newline at end of file
        diff --git a/nitfol b/nitfol
-       index 7c465af..df1db54 100644
+       index $symlink..$new 100644
        --- a/nitfol
        +++ b/nitfol
        @@ -1 +1 @@
@@ -126,7 +140,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' '
@@ -137,13 +151,17 @@ test_expect_success SYMLINKS 'setup symlinks with attributes' '
 '
 
 test_expect_success SYMLINKS 'symlinks do not respect userdiff config by path' '
-       cat >expect <<-\EOF &&
+       file=$(short_oid file.bin) &&
+       link=$(symlink_oid file.bin) &&
+       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..$file
+       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..$link
+       --- /dev/null
        +++ b/link.bin
        @@ -0,0 +1 @@
        +file.bin