diff options
Diffstat (limited to 'third_party/git/t/t9805-git-p4-skip-submit-edit.sh')
-rwxr-xr-x | third_party/git/t/t9805-git-p4-skip-submit-edit.sh | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/third_party/git/t/t9805-git-p4-skip-submit-edit.sh b/third_party/git/t/t9805-git-p4-skip-submit-edit.sh new file mode 100755 index 000000000000..90ef647db7e6 --- /dev/null +++ b/third_party/git/t/t9805-git-p4-skip-submit-edit.sh @@ -0,0 +1,101 @@ +#!/bin/sh + +test_description='git p4 skipSubmitEdit config variables' + +. ./lib-git-p4.sh + +test_expect_success 'start p4d' ' + start_p4d +' + +test_expect_success 'init depot' ' + ( + cd "$cli" && + echo file1 >file1 && + p4 add file1 && + p4 submit -d "change 1" + ) +' + +# this works because P4EDITOR is set to true +test_expect_success 'no config, unedited, say yes' ' + git p4 clone --dest="$git" //depot && + test_when_finished cleanup_git && + ( + cd "$git" && + echo line >>file1 && + git commit -a -m "change 2" && + echo y | git p4 submit && + p4 changes //depot/... >wc && + test_line_count = 2 wc + ) +' + +test_expect_success 'no config, unedited, say no' ' + git p4 clone --dest="$git" //depot && + test_when_finished cleanup_git && + ( + cd "$git" && + echo line >>file1 && + git commit -a -m "change 3 (not really)" && + printf "bad response\nn\n" | test_expect_code 1 git p4 submit && + p4 changes //depot/... >wc && + test_line_count = 2 wc + ) +' + +test_expect_success 'skipSubmitEdit' ' + git p4 clone --dest="$git" //depot && + test_when_finished cleanup_git && + ( + cd "$git" && + git config git-p4.skipSubmitEdit true && + # will fail if editor is even invoked + git config core.editor /bin/false && + echo line >>file1 && + git commit -a -m "change 3" && + git p4 submit && + p4 changes //depot/... >wc && + test_line_count = 3 wc + ) +' + +test_expect_success 'skipSubmitEditCheck' ' + git p4 clone --dest="$git" //depot && + test_when_finished cleanup_git && + ( + cd "$git" && + git config git-p4.skipSubmitEditCheck true && + echo line >>file1 && + git commit -a -m "change 4" && + git p4 submit && + p4 changes //depot/... >wc && + test_line_count = 4 wc + ) +' + +# check the normal case, where the template really is edited +test_expect_success 'no config, edited' ' + git p4 clone --dest="$git" //depot && + test_when_finished cleanup_git && + test_when_finished "rm ed.sh" && + cat >ed.sh <<-EOF && + #!$SHELL_PATH + sleep 1 + touch "\$1" + exit 0 + EOF + chmod 755 ed.sh && + ( + cd "$git" && + echo line >>file1 && + git commit -a -m "change 5" && + P4EDITOR="\"$TRASH_DIRECTORY/ed.sh\"" && + export P4EDITOR && + git p4 submit && + p4 changes //depot/... >wc && + test_line_count = 5 wc + ) +' + +test_done |