t2200: check that "add -u" limits itself to subdirectory
[gitweb.git] / t / t1504-ceiling-dirs.sh
index 91b704a3a4ce6771071d19bd84aa228856fe6875..3d51615e42d53a0c7794533eb27049606981fbf3 100755 (executable)
@@ -9,11 +9,12 @@ test_prefix() {
 }
 
 test_fail() {
-       test_expect_code 128 "$1: prefix" \
-       "git rev-parse --show-prefix"
+       test_expect_success "$1: prefix" '
+               test_expect_code 128 git rev-parse --show-prefix
+       '
 }
 
-TRASH_ROOT="$(pwd)"
+TRASH_ROOT="$PWD"
 ROOT_PARENT=$(dirname "$TRASH_ROOT")
 
 
@@ -43,6 +44,10 @@ test_prefix ceil_at_sub ""
 GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/"
 test_prefix ceil_at_sub_slash ""
 
+if test_have_prereq SYMLINKS
+then
+       ln -s sub top
+fi
 
 mkdir -p sub/dir || exit 1
 cd sub/dir || exit 1
@@ -67,6 +72,19 @@ test_fail subdir_ceil_at_sub
 GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/"
 test_fail subdir_ceil_at_sub_slash
 
+if test_have_prereq SYMLINKS
+then
+       GIT_CEILING_DIRECTORIES="$TRASH_ROOT/top"
+       test_fail subdir_ceil_at_top
+       GIT_CEILING_DIRECTORIES="$TRASH_ROOT/top/"
+       test_fail subdir_ceil_at_top_slash
+
+       GIT_CEILING_DIRECTORIES=":$TRASH_ROOT/top"
+       test_prefix subdir_ceil_at_top_no_resolve "sub/dir/"
+       GIT_CEILING_DIRECTORIES=":$TRASH_ROOT/top/"
+       test_prefix subdir_ceil_at_top_slash_no_resolve "sub/dir/"
+fi
+
 GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/dir"
 test_prefix subdir_ceil_at_subdir "sub/dir/"
 
@@ -93,13 +111,13 @@ GIT_CEILING_DIRECTORIES="$TRASH_ROOT/subdi"
 test_prefix subdir_ceil_at_subdi_slash "sub/dir/"
 
 
-GIT_CEILING_DIRECTORIES="foo:$TRASH_ROOT/sub"
+GIT_CEILING_DIRECTORIES="/foo:$TRASH_ROOT/sub"
 test_fail second_of_two
 
-GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub:bar"
+GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub:/bar"
 test_fail first_of_two
 
-GIT_CEILING_DIRECTORIES="foo:$TRASH_ROOT/sub:bar"
+GIT_CEILING_DIRECTORIES="/foo:$TRASH_ROOT/sub:/bar"
 test_fail second_of_three