Git fork
at reftables-rust 186 lines 4.2 kB view raw
1#!/bin/sh 2 3test_description='test GIT_CEILING_DIRECTORIES' 4 5. ./test-lib.sh 6 7test_prefix() { 8 local expect="$2" && 9 test_expect_success "$1: git rev-parse --show-prefix is '$2'" ' 10 echo "$expect" >expect && 11 git rev-parse --show-prefix >actual && 12 test_cmp expect actual 13 ' 14} 15 16test_fail() { 17 test_expect_success "$1: prefix" ' 18 test_expect_code 128 git rev-parse --show-prefix 19 ' 20} 21 22TRASH_ROOT="$PWD" 23ROOT_PARENT=$(dirname "$TRASH_ROOT") 24 25 26unset GIT_CEILING_DIRECTORIES 27test_prefix no_ceil "" 28 29export GIT_CEILING_DIRECTORIES 30 31GIT_CEILING_DIRECTORIES="" 32test_prefix ceil_empty "" 33 34GIT_CEILING_DIRECTORIES="$ROOT_PARENT" 35test_prefix ceil_at_parent "" 36 37GIT_CEILING_DIRECTORIES="$ROOT_PARENT/" 38test_prefix ceil_at_parent_slash "" 39 40GIT_CEILING_DIRECTORIES="$TRASH_ROOT" 41test_prefix ceil_at_trash "" 42 43GIT_CEILING_DIRECTORIES="$TRASH_ROOT/" 44test_prefix ceil_at_trash_slash "" 45 46GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub" 47test_prefix ceil_at_sub "" 48 49GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/" 50test_prefix ceil_at_sub_slash "" 51 52if test_have_prereq SYMLINKS 53then 54 ln -s sub top 55fi 56 57mkdir -p sub/dir || exit 1 58cd sub/dir || exit 1 59 60unset GIT_CEILING_DIRECTORIES 61test_prefix subdir_no_ceil "sub/dir/" 62 63export GIT_CEILING_DIRECTORIES 64 65GIT_CEILING_DIRECTORIES="" 66test_prefix subdir_ceil_empty "sub/dir/" 67 68GIT_CEILING_DIRECTORIES="$TRASH_ROOT" 69test_fail subdir_ceil_at_trash 70 71GIT_CEILING_DIRECTORIES="$TRASH_ROOT/" 72test_fail subdir_ceil_at_trash_slash 73 74GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub" 75test_fail subdir_ceil_at_sub 76 77GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/" 78test_fail subdir_ceil_at_sub_slash 79 80if test_have_prereq SYMLINKS 81then 82 GIT_CEILING_DIRECTORIES="$TRASH_ROOT/top" 83 test_fail subdir_ceil_at_top 84 GIT_CEILING_DIRECTORIES="$TRASH_ROOT/top/" 85 test_fail subdir_ceil_at_top_slash 86 87 GIT_CEILING_DIRECTORIES=":$TRASH_ROOT/top" 88 test_prefix subdir_ceil_at_top_no_resolve "sub/dir/" 89 GIT_CEILING_DIRECTORIES=":$TRASH_ROOT/top/" 90 test_prefix subdir_ceil_at_top_slash_no_resolve "sub/dir/" 91fi 92 93GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/dir" 94test_prefix subdir_ceil_at_subdir "sub/dir/" 95 96GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/dir/" 97test_prefix subdir_ceil_at_subdir_slash "sub/dir/" 98 99 100GIT_CEILING_DIRECTORIES="$TRASH_ROOT/su" 101test_prefix subdir_ceil_at_su "sub/dir/" 102 103GIT_CEILING_DIRECTORIES="$TRASH_ROOT/su/" 104test_prefix subdir_ceil_at_su_slash "sub/dir/" 105 106GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/di" 107test_prefix subdir_ceil_at_sub_di "sub/dir/" 108 109GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/di" 110test_prefix subdir_ceil_at_sub_di_slash "sub/dir/" 111 112GIT_CEILING_DIRECTORIES="$TRASH_ROOT/subdi" 113test_prefix subdir_ceil_at_subdi "sub/dir/" 114 115GIT_CEILING_DIRECTORIES="$TRASH_ROOT/subdi" 116test_prefix subdir_ceil_at_subdi_slash "sub/dir/" 117 118 119GIT_CEILING_DIRECTORIES="/foo:$TRASH_ROOT/sub" 120test_fail second_of_two 121 122GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub:/bar" 123test_fail first_of_two 124 125GIT_CEILING_DIRECTORIES="/foo:$TRASH_ROOT/sub:/bar" 126test_fail second_of_three 127 128 129GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub" 130GIT_DIR=../../.git 131export GIT_DIR 132test_prefix git_dir_specified "" 133unset GIT_DIR 134 135 136cd ../.. || exit 1 137mkdir -p s/d || exit 1 138cd s/d || exit 1 139 140unset GIT_CEILING_DIRECTORIES 141test_prefix sd_no_ceil "s/d/" 142 143export GIT_CEILING_DIRECTORIES 144 145GIT_CEILING_DIRECTORIES="" 146test_prefix sd_ceil_empty "s/d/" 147 148GIT_CEILING_DIRECTORIES="$TRASH_ROOT" 149test_fail sd_ceil_at_trash 150 151GIT_CEILING_DIRECTORIES="$TRASH_ROOT/" 152test_fail sd_ceil_at_trash_slash 153 154GIT_CEILING_DIRECTORIES="$TRASH_ROOT/s" 155test_fail sd_ceil_at_s 156 157GIT_CEILING_DIRECTORIES="$TRASH_ROOT/s/" 158test_fail sd_ceil_at_s_slash 159 160GIT_CEILING_DIRECTORIES="$TRASH_ROOT/s/d" 161test_prefix sd_ceil_at_sd "s/d/" 162 163GIT_CEILING_DIRECTORIES="$TRASH_ROOT/s/d/" 164test_prefix sd_ceil_at_sd_slash "s/d/" 165 166 167GIT_CEILING_DIRECTORIES="$TRASH_ROOT/su" 168test_prefix sd_ceil_at_su "s/d/" 169 170GIT_CEILING_DIRECTORIES="$TRASH_ROOT/su/" 171test_prefix sd_ceil_at_su_slash "s/d/" 172 173GIT_CEILING_DIRECTORIES="$TRASH_ROOT/s/di" 174test_prefix sd_ceil_at_s_di "s/d/" 175 176GIT_CEILING_DIRECTORIES="$TRASH_ROOT/s/di" 177test_prefix sd_ceil_at_s_di_slash "s/d/" 178 179GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sdi" 180test_prefix sd_ceil_at_sdi "s/d/" 181 182GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sdi" 183test_prefix sd_ceil_at_sdi_slash "s/d/" 184 185 186test_done