github.com/ungtb10d/git-lfs@v2.5.2+incompatible/t/t-pointer.sh (about) 1 #!/usr/bin/env bash 2 3 . "$(dirname "$0")/testlib.sh" 4 5 6 begin_test "pointer --file --stdin" 7 ( 8 set -e 9 10 echo "simple" > some-file 11 12 input="version https://git-lfs.github.com/spec/v1 13 oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 14 size 7" 15 16 expected="Git LFS pointer for some-file 17 18 version https://git-lfs.github.com/spec/v1 19 oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 20 size 7 21 22 Git blob OID: e18acd45d7e3ce0451d1d637f9697aa508e07dee 23 24 Pointer from STDIN 25 26 version https://git-lfs.github.com/spec/v1 27 oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 28 size 7 29 30 Git blob OID: e18acd45d7e3ce0451d1d637f9697aa508e07dee" 31 32 [ "$expected" = "$(echo "$input" | git lfs pointer --file=some-file --stdin 2>&1)" ] 33 ) 34 end_test 35 36 begin_test "pointer --file --stdin mismatch" 37 ( 38 set -e 39 40 echo "simple" > some-file 41 42 input="version https://git-lfs.github.com/spec/v1 43 oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 44 size 123" 45 46 set +e 47 output=$(echo "$input" | git lfs pointer --file=some-file --stdin 2>&1) 48 status=$? 49 set -e 50 51 [ "1" = "$status" ] 52 53 expected="Git LFS pointer for some-file 54 55 version https://git-lfs.github.com/spec/v1 56 oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 57 size 7 58 59 Git blob OID: e18acd45d7e3ce0451d1d637f9697aa508e07dee 60 61 Pointer from STDIN 62 63 version https://git-lfs.github.com/spec/v1 64 oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 65 size 123 66 67 Git blob OID: 905bcc24b5dc074ab870f9944178e398eec3b470 68 69 Pointers do not match" 70 71 [ "$expected" = "$output" ] 72 ) 73 end_test 74 75 begin_test "pointer --stdin" 76 ( 77 set -e 78 79 echo "version https://git-lfs.github.com/spec/v1 80 oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 81 size 7" > valid-pointer 82 83 output=$(cat valid-pointer | git lfs pointer --stdin 2>&1) 84 expected="Pointer from STDIN 85 86 version https://git-lfs.github.com/spec/v1 87 oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 88 size 7" 89 90 [ "$expected" = "$output" ] 91 ) 92 end_test 93 94 begin_test "pointer --stdin without stdin" 95 ( 96 # this test doesn't work on Windows, it just operates like 'bad pointer' case 97 # stdin isn't detectable as detached, it just times out with no content 98 if [[ "$(is_stdin_attached)" == "0" ]]; then 99 echo "Skipping pointer without stdin because STDIN attached" 100 exit 0 101 fi 102 output=$(echo "" | git lfs pointer --stdin 2>&1) 103 status=$? 104 105 set -e 106 107 expected="Cannot read from STDIN. The --stdin flag expects a pointer file from STDIN." 108 109 [ "$expected" = "$output" ] 110 111 [ "1" = "$status" ] 112 ) 113 end_test 114 115 begin_test "pointer --stdin with bad pointer" 116 ( 117 output=$(echo "not a pointer" | git lfs pointer --stdin 2>&1) 118 status=$? 119 120 set -e 121 122 expected="Pointer from STDIN 123 124 Pointer file error: invalid header" 125 126 diff -u <(printf "$expected") <(printf "$output") 127 128 [ "1" = "$status" ] 129 ) 130 end_test 131 132 begin_test "pointer --file --pointer mismatch" 133 ( 134 set -e 135 echo "simple" > some-file 136 echo "version https://git-lfs.github.com/spec/v1 137 oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 138 size 123" > invalid-pointer 139 140 expected="Git LFS pointer for some-file 141 142 version https://git-lfs.github.com/spec/v1 143 oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 144 size 7 145 146 Git blob OID: e18acd45d7e3ce0451d1d637f9697aa508e07dee 147 148 Pointer from invalid-pointer 149 150 version https://git-lfs.github.com/spec/v1 151 oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 152 size 123 153 154 Git blob OID: 905bcc24b5dc074ab870f9944178e398eec3b470 155 156 Pointers do not match" 157 158 set +e 159 output=$(git lfs pointer --file=some-file --pointer=invalid-pointer 2>&1) 160 status=$? 161 set -e 162 163 [ "1" = "$status" ] 164 165 [ "$expected" = "$output" ] 166 ) 167 end_test 168 169 begin_test "pointer --file --pointer" 170 ( 171 set -e 172 echo "simple" > some-file 173 echo "version https://git-lfs.github.com/spec/v1 174 oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 175 size 7" > valid-pointer 176 177 expected="Git LFS pointer for some-file 178 179 version https://git-lfs.github.com/spec/v1 180 oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 181 size 7 182 183 Git blob OID: e18acd45d7e3ce0451d1d637f9697aa508e07dee 184 185 Pointer from valid-pointer 186 187 version https://git-lfs.github.com/spec/v1 188 oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 189 size 7 190 191 Git blob OID: e18acd45d7e3ce0451d1d637f9697aa508e07dee" 192 193 194 [ "$expected" = "$(git lfs pointer --file=some-file --pointer=valid-pointer 2>&1)" ] 195 ) 196 end_test 197 198 begin_test "pointer --pointer" 199 ( 200 set -e 201 202 echo "version https://git-lfs.github.com/spec/v1 203 oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 204 size 7" > valid-pointer 205 206 expected="Pointer from valid-pointer 207 208 version https://git-lfs.github.com/spec/v1 209 oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 210 size 7" 211 212 [ "$expected" = "$(git lfs pointer --pointer=valid-pointer 2>&1)" ] 213 ) 214 end_test 215 216 begin_test "pointer missing --pointer" 217 ( 218 output=$(git lfs pointer --pointer=missing-pointer 2>&1) 219 status=$? 220 set -e 221 222 [ "1" = "$status" ] 223 224 echo "$output" 225 echo "$output" | grep "open missing-pointer:" 226 ) 227 end_test 228 229 begin_test "pointer invalid --pointer" 230 ( 231 set -e 232 233 echo "not a pointer" > some-pointer 234 235 set +e 236 output=$(git lfs pointer --pointer=some-pointer 2>&1) 237 status=$? 238 set -e 239 240 [ "1" = "$status" ] 241 242 expected="Pointer from some-pointer 243 244 Pointer file error: invalid header" 245 246 diff -u <(printf "$expected") <(printf "$output") 247 248 [ "$expected" = "$output" ] 249 ) 250 end_test 251 252 begin_test "pointer --file" 253 ( 254 set -e 255 echo "simple" > some-file 256 257 expected="Git LFS pointer for some-file 258 259 version https://git-lfs.github.com/spec/v1 260 oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 261 size 7" 262 263 [ "$expected" = "$(git lfs pointer --file=some-file 2>&1)" ] 264 ) 265 end_test 266 267 begin_test "pointer without args" 268 ( 269 output=$(git lfs pointer 2>&1) 270 status=$? 271 set -e 272 273 [ "Nothing to do!" = "$output" ] 274 [ "1" = "$status" ] 275 ) 276 end_test 277 278 begin_test "pointer stdout/stderr" 279 ( 280 set -e 281 echo "pointer-stdout-test" > pointer-stdout-test.txt 282 git lfs pointer --file=pointer-stdout-test.txt > stdout.txt 2> stderr.txt 283 echo "stdout:" 284 cat stdout.txt 285 [ $(wc -l stdout.txt | sed -e 's/^[[:space:]]*//' | cut -f1 -d' ') -eq 3 ] 286 grep "oid sha256:e96ec1bd71eea8df78b24c64a7ab9d42dd7f821c4e503f0e2288273b9bff6c16" stdout.txt 287 [ $(grep -c "Git LFS pointer" stdout.txt) -eq 0 ] 288 289 echo "stderr:" 290 cat stderr.txt 291 grep "Git LFS pointer" stderr.txt 292 [ $(grep -c "oid sha256:" stderr.txt) -eq 0 ] 293 ) 294 end_test 295 296 begin_test "pointer to console" 297 ( 298 set -e 299 echo "pointer-stdout-test" > pointer-stdout-test.txt 300 git lfs pointer --file=pointer-stdout-test.txt 2>&1 | tee pointer.txt 301 grep "Git LFS pointer" pointer.txt 302 grep "oid sha256:e96ec1bd71eea8df78b24c64a7ab9d42dd7f821c4e503f0e2288273b9bff6c16" pointer.txt 303 ) 304 end_test