 512477b175
			
		
	
	512477b175
	
	
	
		
			
			Ordinarily, we would say "VAR=VAL command" to execute a tested
command with environment variable(s) set only for that command.
This however does not work if 'command' is a shell function (most
notably 'test_must_fail'); the result of the assignment is retained
and affects later commands.
To avoid this, we used to assign and export environment variables
and run such a test in a subshell, like so:
        (
                VAR=VAL && export VAR &&
                test_must_fail git command to be tested
        )
But with "env" utility, we should be able to say:
        test_must_fail env VAR=VAL git command to be tested
which is much shorter and easier to read.
Signed-off-by: David Tran <unsignedzero@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
	
		
			
				
	
	
		
			28 lines
		
	
	
		
			809 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			809 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description=clone
 | |
| 
 | |
| . ./test-lib.sh
 | |
| 
 | |
| test_expect_success setup '
 | |
| 	echo "#!/bin/sh" > not_ssh &&
 | |
| 	echo "echo \"\$*\" > not_ssh_output" >> not_ssh &&
 | |
| 	echo "exit 1" >> not_ssh &&
 | |
| 	chmod +x not_ssh
 | |
| '
 | |
| 
 | |
| test_expect_success 'clone calls git upload-pack unqualified with no -u option' '
 | |
| 	test_must_fail env GIT_SSH=./not_ssh git clone localhost:/path/to/repo junk &&
 | |
| 	echo "localhost git-upload-pack '\''/path/to/repo'\''" >expected &&
 | |
| 	test_cmp expected not_ssh_output
 | |
| '
 | |
| 
 | |
| test_expect_success 'clone calls specified git upload-pack with -u option' '
 | |
| 	test_must_fail env GIT_SSH=./not_ssh \
 | |
| 		git clone -u ./something/bin/git-upload-pack localhost:/path/to/repo junk &&
 | |
| 	echo "localhost ./something/bin/git-upload-pack '\''/path/to/repo'\''" >expected &&
 | |
| 	test_cmp expected not_ssh_output
 | |
| '
 | |
| 
 | |
| test_done
 |