diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-04-12 09:59:59 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-04-12 09:59:59 -0700 |
commit | 7bec7f50ae10ce760160ed4d11e47cd0494cb8d7 (patch) | |
tree | 6addfbd693a781a833375f6cf8536ae1a034460f | |
parent | a3bb8ca74ca01859f5eed962256faea737d4db7c (diff) | |
download | git-jk/use-write-script-more.tar.gz |
t3404: use write_scriptjk/use-write-script-more
The test uses hardcoded #!/bin/sh to create a pre-commit hook
script. Because the generated script uses $(command substitution),
which is not supported by /bin/sh on some platforms (e.g. Solaris),
the resulting pre-commit always fails.
Which is not noticeable as the test that uses the hook is about
checking the behaviour of the command when the hook fails ;-), but
nevertheless it is not testing what we wanted to test.
Use write_script so that the resulting script is run under the same
shell our scripted Porcelain commands are run, which must support
the necessary $(construct).
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | t/t3404-rebase-interactive.sh | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh index 544f9ad508..d6d65a3a94 100755 --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@ -555,10 +555,9 @@ test_expect_success 'rebase a detached HEAD' ' test_expect_success 'rebase a commit violating pre-commit' ' mkdir -p .git/hooks && - PRE_COMMIT=.git/hooks/pre-commit && - echo "#!/bin/sh" > $PRE_COMMIT && - echo "test -z \"\$(git diff --cached --check)\"" >> $PRE_COMMIT && - chmod a+x $PRE_COMMIT && + write_script .git/hooks/pre-commit <<-\EOF && + test -z "$(git diff --cached --check)" + EOF echo "monde! " >> file1 && test_tick && test_must_fail git commit -m doesnt-verify file1 && |