From: Junio C Hamano Date: Tue, 27 Mar 2012 19:16:36 GMT Subject: Re: [PATCH 2/2] git: continue alias lookup on EACCES errors Message-ID: <7v4nt9j1m3.fsf@alter.siamese.dyndns.org> In-Reply-To: <20120327180503.GB4659@sigill.intra.peff.net> Jeff King 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