t/t7008-grep-binary.sh: un-TODO a test that needs REG_STARTEND
[gitweb.git] / t / t4011-diff-symlink.sh
index 02efecae3ad06e5a62553e990fc0934dd0c65eab..918a21a2f41caf2e8ed6bb6120631ff0e4ccb0fc 100755 (executable)
@@ -9,6 +9,12 @@ test_description='Test diff of symlinks.
 . ./test-lib.sh
 . "$TEST_DIRECTORY"/diff-lib.sh
 
+if ! test_have_prereq SYMLINKS
+then
+       skip_all='Symbolic links not supported, skipping tests.'
+       test_done
+fi
+
 cat > expected << EOF
 diff --git a/frotz b/frotz
 new file mode 120000
@@ -48,7 +54,7 @@ EOF
 
 test_expect_success \
     'diff removed symlink' \
-    'rm frotz &&
+    'mv frotz frotz2 &&
     git diff-index -M -p $tree > current &&
     compare_diff_patch current expected'
 
@@ -58,8 +64,7 @@ EOF
 
 test_expect_success \
     'diff identical, but newly created symlink' \
-    'sleep 3 &&
-    ln -s xyzzy frotz &&
+    'ln -s xyzzy frotz &&
     git diff-index -M -p $tree > current &&
     compare_diff_patch current expected'
 
@@ -82,4 +87,11 @@ test_expect_success \
     git diff-index -M -p $tree > current &&
     compare_diff_patch current expected'
 
+test_expect_success \
+    'diff symlinks with non-existing targets' \
+    'ln -s narf pinky &&
+    ln -s take\ over brain &&
+    test_must_fail git diff --no-index pinky brain > output 2> output.err &&
+    grep narf output &&
+    ! grep error output.err'
 test_done