Code

tests: check error message from run_command
authorJonathan Nieder <jrnieder@gmail.com>
Wed, 20 Apr 2011 10:35:08 +0000 (05:35 -0500)
committerJunio C Hamano <gitster@pobox.com>
Wed, 20 Apr 2011 17:08:54 +0000 (10:08 -0700)
commitc0f19bf3b9c42036722396ee26d2c173d6abf761
treedd7e20beb99fe323f486c68dc2fc7e9205e161de
parent60e199c4d577514ed810b4ed0b6072fb3dbab903
tests: check error message from run_command

In git versions starting at v1.7.5-rc0~29^2 until v1.7.5-rc3~2 (Revert
"run-command: prettify -D_FORTIFY_SOURCE workaround", 2011-04-18)
fixed it, the run_command facility would write a truncated error
message when the command is present but cannot be executed for some
other reason.  For example, if I add a 'hello' command to git:

$ echo 'echo hello' >git-hello
$ chmod +x git-hello
$ PATH=.:$PATH git hello
hello

and make it non-executable, this is what I normally get:

$ chmod -x git-hello
$ git hello
fatal: cannot exec 'git-hello': Permission denied

But with the problematic versions, we get disturbing output:

$ PATH=.:$PATH git hello
fatal: $

Add some tests to make sure it doesn't happen again.

The hello-script used in these tests uses cat instead of echo because
on Windows the bash spawned by git converts LF to CRLF in text written
by echo while the bash running tests does not, causing the test to
fail if "echo" is used.  Thanks to Hannes for noticing.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Improved-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t0061-run-command.sh
test-run-command.c