 704a3143d5
			
		
	
	704a3143d5
	
	
	
		
			
			Many tests depend on that symbolic links work.  This introduces a check
that sets the prerequisite tag SYMLINKS if the file system supports
symbolic links.  Since so many tests have to check for this prerequisite,
we do the check in test-lib.sh, so that we don't need to repeat the test
in many scripts.
To check for 'ln -s' failures, you can use a FAT partition on Linux:
$ mkdosfs -C git-on-fat 1000000
$ sudo mount -o loop,uid=j6t,gid=users,shortname=winnt git-on-fat /mnt
Clone git to /mnt and
$ GIT_SKIP_TESTS='t0001.1[34] t0010 t1301 t403[34] t4129.[47] t5701.7
          t7701.3 t9100 t9101.26 t9119 t9124.[67] t9200.10 t9600.6' \
        make test
(These additionally skipped tests depend on POSIX permissions that FAT on
Linux does not provide.)
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
		
	
		
			
				
	
	
		
			62 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| #
 | |
| # Copyright (c) 2005 Junio C Hamano
 | |
| #
 | |
| 
 | |
| test_description='git update-index nonsense-path test.
 | |
| 
 | |
| This test creates the following structure in the cache:
 | |
| 
 | |
|     path0       - a file
 | |
|     path1       - a symlink
 | |
|     path2/file2 - a file in a directory
 | |
|     path3/file3 - a file in a directory
 | |
| 
 | |
| and tries to git update-index --add the following:
 | |
| 
 | |
|     path0/file0 - a file in a directory
 | |
|     path1/file1 - a file in a directory
 | |
|     path2       - a file
 | |
|     path3       - a symlink
 | |
| 
 | |
| All of the attempts should fail.
 | |
| '
 | |
| 
 | |
| . ./test-lib.sh
 | |
| 
 | |
| mkdir path2 path3
 | |
| date >path0
 | |
| if test_have_prereq SYMLINKS
 | |
| then
 | |
| 	ln -s xyzzy path1
 | |
| else
 | |
| 	date > path1
 | |
| fi
 | |
| date >path2/file2
 | |
| date >path3/file3
 | |
| 
 | |
| test_expect_success \
 | |
|     'git update-index --add to add various paths.' \
 | |
|     'git update-index --add -- path0 path1 path2/file2 path3/file3'
 | |
| 
 | |
| rm -fr path?
 | |
| 
 | |
| mkdir path0 path1
 | |
| date >path2
 | |
| if test_have_prereq SYMLINKS
 | |
| then
 | |
| 	ln -s frotz path3
 | |
| else
 | |
| 	date > path3
 | |
| fi
 | |
| date >path0/file0
 | |
| date >path1/file1
 | |
| 
 | |
| for p in path0/file0 path1/file1 path2 path3
 | |
| do
 | |
| 	test_expect_success \
 | |
| 	    "git update-index to add conflicting path $p should fail." \
 | |
| 	    "test_must_fail git update-index --add -- $p"
 | |
| done
 | |
| test_done
 |