| 1 | #!/bin/sh |
| 2 | # |
| 3 | # Copyright (c) 2005 Junio C Hamano |
| 4 | # |
| 5 | |
| 6 | test_description='git update-index nonsense-path test. |
| 7 | |
| 8 | This test creates the following structure in the cache: |
| 9 | |
| 10 | path0 - a file |
| 11 | path1 - a symlink |
| 12 | path2/file2 - a file in a directory |
| 13 | path3/file3 - a file in a directory |
| 14 | |
| 15 | and tries to git update-index --add the following: |
| 16 | |
| 17 | path0/file0 - a file in a directory |
| 18 | path1/file1 - a file in a directory |
| 19 | path2 - a file |
| 20 | path3 - a symlink |
| 21 | |
| 22 | All of the attempts should fail. |
| 23 | ' |
| 24 | |
| 25 | . ./test-lib.sh |
| 26 | |
| 27 | mkdir path2 path3 |
| 28 | date >path0 |
| 29 | if test_have_prereq SYMLINKS |
| 30 | then |
| 31 | ln -s xyzzy path1 |
| 32 | else |
| 33 | date > path1 |
| 34 | fi |
| 35 | date >path2/file2 |
| 36 | date >path3/file3 |
| 37 | |
| 38 | test_expect_success \ |
| 39 | 'git update-index --add to add various paths.' \ |
| 40 | 'git update-index --add -- path0 path1 path2/file2 path3/file3' |
| 41 | |
| 42 | rm -fr path? |
| 43 | |
| 44 | mkdir path0 path1 |
| 45 | date >path2 |
| 46 | if test_have_prereq SYMLINKS |
| 47 | then |
| 48 | ln -s frotz path3 |
| 49 | else |
| 50 | date > path3 |
| 51 | fi |
| 52 | date >path0/file0 |
| 53 | date >path1/file1 |
| 54 | |
| 55 | for p in path0/file0 path1/file1 path2 path3 |
| 56 | do |
| 57 | test_expect_success \ |
| 58 | "git update-index to add conflicting path $p should fail." \ |
| 59 | "test_must_fail git update-index --add -- $p" |
| 60 | done |
| 61 | test_done |