Capture failure behavior when running into - EACCES caused by search path permissions - ENOENT caused by interpreter not found Signed-off-by: Frans Klaver <fransklaver@xxxxxxxxx> --- t/t0061-run-command.sh | 50 +++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 49 insertions(+), 1 deletions(-) diff --git a/t/t0061-run-command.sh b/t/t0061-run-command.sh index 95e89bc..31eb3c3 100755 --- a/t/t0061-run-command.sh +++ b/t/t0061-run-command.sh @@ -13,6 +13,24 @@ cat hello-script EOF >empty +cat >someinterpreter <<-EOF +#!$SHELL_PATH +cat hello-script +EOF +>empty + +cat >incorrect-interpreter-script <<-EOF +#!someinterpreter +cat hello-script +EOF +>empty + +cat >non-existing-interpreter <<-EOF +#!nonexisting_interpreter +cat hello-script +EOF +>empty + test_expect_success 'start_command reports ENOENT' ' test-run-command start-command-ENOENT ./does-not-exist ' @@ -26,7 +44,7 @@ test_expect_success 'run_command can run a command' ' test_cmp empty err ' -test_expect_success POSIXPERM 'run_command reports EACCES' ' +test_expect_success POSIXPERM 'run_command reports EACCES, file permissions' ' cat hello-script >hello.sh && chmod -x hello.sh && test_must_fail test-run-command run-command ./hello.sh 2>err && @@ -34,4 +52,34 @@ test_expect_success POSIXPERM 'run_command reports EACCES' ' grep "fatal: cannot exec.*hello.sh" err ' +test_expect_success POSIXPERM 'run_command reports EACCES, search path perms' ' + mkdir -p inaccessible && + PATH=$(pwd)/inaccessible:$PATH && + export PATH && + + cat hello-script >inaccessible/hello.sh && + chmod 400 inaccessible && + test_must_fail test-run-command run-command hello.sh 2>err && + chmod 755 inaccessible && + + grep "fatal: cannot exec.*hello.sh" err +' + +test_expect_success POSIXPERM 'run_command reports EACCES, interpreter fails' ' + cat incorrect-interpreter-script >hello.sh && + chmod +x hello.sh && + chmod -x someinterpreter && + test_must_fail test-run-command run-command ./hello.sh 2>err && + + grep "fatal: cannot exec.*hello.sh" err +' + +test_expect_failure POSIXPERM 'run_command reports ENOENT, interpreter' ' + cat non-existing-interpreter >hello.sh && + chmod +x hello.sh && + test_must_fail test-run-command start-command-ENOENT ./hello.sh 2>err && + + grep "error: cannot exec.*hello.sh" err +' + test_done -- 1.7.8.1 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html