| #!/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 |