string_list: add function string_list_append_nodup()
[gitweb.git] / t / t4035-diff-quiet.sh
index cdb9202f57ea75983cf8a25f892bbf868724250d..231412d1008e45e1d788660930cab708d3912ed4 100755 (executable)
@@ -10,7 +10,22 @@ test_expect_success 'setup' '
        git commit -m first &&
        echo 2 >b &&
        git add . &&
-       git commit -a -m second
+       git commit -a -m second &&
+       mkdir -p test-outside/repo && (
+               cd test-outside/repo &&
+               git init &&
+               echo "1 1" >a &&
+               git add . &&
+               git commit -m 1
+       ) &&
+       mkdir -p test-outside/non/git && (
+               cd test-outside/non/git &&
+               echo "1 1" >a &&
+               echo "1 1" >matching-file &&
+               echo "1 1 " >trailing-space &&
+               echo "1   1" >extra-space &&
+               echo "2" >never-match
+       )
 '
 
 test_expect_success 'git diff-tree HEAD^ HEAD' '
@@ -77,4 +92,60 @@ test_expect_success 'git diff-index --cached HEAD' '
        }
 '
 
+test_expect_success 'git diff, one file outside repo' '
+       (
+               cd test-outside/repo &&
+               test_expect_code 0 git diff --quiet a ../non/git/matching-file &&
+               test_expect_code 1 git diff --quiet a ../non/git/extra-space
+       )
+'
+
+test_expect_success 'git diff, both files outside repo' '
+       (
+               GIT_CEILING_DIRECTORIES="$TRASH_DIRECTORY/test-outside" &&
+               export GIT_CEILING_DIRECTORIES &&
+               cd test-outside/non/git &&
+               test_expect_code 0 git diff --quiet a matching-file &&
+               test_expect_code 1 git diff --quiet a extra-space
+       )
+'
+
+test_expect_success 'git diff --ignore-space-at-eol, one file outside repo' '
+       (
+               cd test-outside/repo &&
+               test_expect_code 0 git diff --quiet --ignore-space-at-eol a ../non/git/trailing-space &&
+               test_expect_code 1 git diff --quiet --ignore-space-at-eol a ../non/git/extra-space
+       )
+'
+
+test_expect_success 'git diff --ignore-space-at-eol, both files outside repo' '
+       (
+               GIT_CEILING_DIRECTORIES="$TRASH_DIRECTORY/test-outside" &&
+               export GIT_CEILING_DIRECTORIES &&
+               cd test-outside/non/git &&
+               test_expect_code 0 git diff --quiet --ignore-space-at-eol a trailing-space &&
+               test_expect_code 1 git diff --quiet --ignore-space-at-eol a extra-space
+       )
+'
+
+test_expect_success 'git diff --ignore-all-space, one file outside repo' '
+       (
+               cd test-outside/repo &&
+               test_expect_code 0 git diff --quiet --ignore-all-space a ../non/git/trailing-space &&
+               test_expect_code 0 git diff --quiet --ignore-all-space a ../non/git/extra-space &&
+               test_expect_code 1 git diff --quiet --ignore-all-space a ../non/git/never-match
+       )
+'
+
+test_expect_success 'git diff --ignore-all-space, both files outside repo' '
+       (
+               GIT_CEILING_DIRECTORIES="$TRASH_DIRECTORY/test-outside" &&
+               export GIT_CEILING_DIRECTORIES &&
+               cd test-outside/non/git &&
+               test_expect_code 0 git diff --quiet --ignore-all-space a trailing-space &&
+               test_expect_code 0 git diff --quiet --ignore-all-space a extra-space &&
+               test_expect_code 1 git diff --quiet --ignore-all-space a never-match
+       )
+'
+
 test_done