tests: exercise the RUNTIME_PREFIX feature
Originally, we refrained from adding a regression test in 7b6c6496374
(system_path(): Add prefix computation at runtime if RUNTIME_PREFIX set,
2008-08-10), and in 226c0ddd0d (exec_cmd: RUNTIME_PREFIX on some POSIX
systems, 2018-04-10).
The reason was that it was deemed too tricky to test.
Turns out that it is not tricky to test at all: we simply create a
pseudo-root, copy the `git` executable into the `git/` subdirectory of
that pseudo-root, then copy a script into the `libexec/git-core/`
directory and expect that to be picked up.
As long as the trash directory is in a location where binaries can be
executed, this works.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
			
			
				maint
			
			
		
							parent
							
								
									ebf3c04b26
								
							
						
					
					
						commit
						b7d11a0f5d
					
				
							
								
								
									
										5
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										5
									
								
								Makefile
								
								
								
								
							|  | @ -2826,6 +2826,11 @@ ifdef GIT_TEST_INDEX_VERSION | |||
| endif | ||||
| ifdef GIT_TEST_PERL_FATAL_WARNINGS | ||||
| 	@echo GIT_TEST_PERL_FATAL_WARNINGS=\''$(subst ','\'',$(subst ','\'',$(GIT_TEST_PERL_FATAL_WARNINGS)))'\' >>$@+ | ||||
| endif | ||||
| ifdef RUNTIME_PREFIX | ||||
| 	@echo RUNTIME_PREFIX=\'true\' >>$@+ | ||||
| else | ||||
| 	@echo RUNTIME_PREFIX=\'false\' >>$@+ | ||||
| endif | ||||
| 	@if cmp $@+ $@ >/dev/null 2>&1; then $(RM) $@+; else mv $@+ $@; fi | ||||
|  | ||||
|  |  | |||
|  | @ -525,4 +525,22 @@ test_expect_success MINGW 'is_valid_path() on Windows' ' | |||
| 		"PRN./abc" | ||||
| ' | ||||
|  | ||||
| test_lazy_prereq RUNTIME_PREFIX ' | ||||
| 	test true = "$RUNTIME_PREFIX" | ||||
| ' | ||||
|  | ||||
| test_lazy_prereq CAN_EXEC_IN_PWD ' | ||||
| 	cp "$GIT_EXEC_PATH"/git$X ./ && | ||||
| 	./git rev-parse | ||||
| ' | ||||
|  | ||||
| test_expect_success RUNTIME_PREFIX,CAN_EXEC_IN_PWD 'RUNTIME_PREFIX works' ' | ||||
| 	mkdir -p pretend/bin pretend/libexec/git-core && | ||||
| 	echo "echo HERE" | write_script pretend/libexec/git-core/git-here && | ||||
| 	cp "$GIT_EXEC_PATH"/git$X pretend/bin/ && | ||||
| 	GIT_EXEC_PATH= ./pretend/bin/git here >actual && | ||||
| 	echo HERE >expect && | ||||
| 	test_cmp expect actual | ||||
| ' | ||||
|  | ||||
| test_done | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Johannes Schindelin
						Johannes Schindelin