Re: [PATCH 2/2] git: continue alias lookup on EACCES errors
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 27, 2012, 19:16 UTC
- Message-ID
- <7v4nt9j1m3.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <20120327180503.GB4659@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
> If git receives an EACCES error while trying to execute an > external command, we currently give up and report the error. > However, the EACCES may be caused by an inaccessible > directory in the user's PATH.
Regardless of EACCES/ENOENT change we discussed, the observable behaviour should be testable. Something like this?
t/t0061-run-command.sh | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/t/t0061-run-command.sh b/t/t0061-run-command.sh index 8d4938f..dbb1d9e 100755 --- a/t/t0061-run-command.sh +++ b/t/t0061-run-command.sh @@ -26,7 +26,7 @@ test_expect_success 'run_command can run a command' ' test_cmp empty err ' -test_expect_success POSIXPERM 'run_command reports EACCES' ' +test_expect_failure POSIXPERM 'run_command reports EACCES' ' cat hello-script >hello.sh && chmod -x hello.sh && test_must_fail test-run-command run-command ./hello.sh 2>err && @@ -34,4 +34,17 @@ test_expect_success POSIXPERM 'run_command reports EACCES' ' grep "fatal: cannot exec.*hello.sh" err ' +test_expect_success POSIXPERM 'unreadable directory in PATH' ' + mkdir local-command && + test_when_finished "chmod u+rwx local-command && rm -fr local-command" && + git config alias.nitfol "!echo frotz" && + chmod a-rx local-command && + ( + PATH=./local-command:$PATH && + git nitfol >actual + ) && + echo frotz >expect && + test_cmp expect actual +' + test_done