summaryrefslogtreecommitdiff
path: root/test-run-command.c
diff options
context:
space:
mode:
authorJonathan Nieder <jrnieder@gmail.com>2011-04-20 10:35:08 (GMT)
committerJunio C Hamano <gitster@pobox.com>2011-04-20 17:08:54 (GMT)
commitc0f19bf3b9c42036722396ee26d2c173d6abf761 (patch)
treedd7e20beb99fe323f486c68dc2fc7e9205e161de /test-run-command.c
parent60e199c4d577514ed810b4ed0b6072fb3dbab903 (diff)
downloadgit-c0f19bf3b9c42036722396ee26d2c173d6abf761.zip
git-c0f19bf3b9c42036722396ee26d2c173d6abf761.tar.gz
git-c0f19bf3b9c42036722396ee26d2c173d6abf761.tar.bz2
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>
Diffstat (limited to 'test-run-command.c')
-rw-r--r--test-run-command.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/test-run-command.c b/test-run-command.c
index 0612bfa..37918e1 100644
--- a/test-run-command.c
+++ b/test-run-command.c
@@ -29,6 +29,8 @@ int main(int argc, char **argv)
fprintf(stderr, "FAIL %s\n", argv[1]);
return 1;
}
+ if (!strcmp(argv[1], "run-command"))
+ exit(run_command(&proc));
fprintf(stderr, "check usage\n");
return 1;