diff options
Diffstat (limited to 't/t9805-git-p4-skip-submit-edit.sh')
| -rwxr-xr-x | t/t9805-git-p4-skip-submit-edit.sh | 104 | 
1 files changed, 104 insertions, 0 deletions
diff --git a/t/t9805-git-p4-skip-submit-edit.sh b/t/t9805-git-p4-skip-submit-edit.sh new file mode 100755 index 0000000000..df929e0555 --- /dev/null +++ b/t/t9805-git-p4-skip-submit-edit.sh @@ -0,0 +1,104 @@ +#!/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 EDITOR is set to : +test_expect_success 'no config, unedited, say yes' ' +	"$GITP4" clone --dest="$git" //depot && +	test_when_finished cleanup_git && +	( +		cd "$git" && +		echo line >>file1 && +		git commit -a -m "change 2" && +		echo y | "$GITP4" submit && +		p4 changes //depot/... >wc && +		test_line_count = 2 wc +	) +' + +test_expect_success 'no config, unedited, say no' ' +	"$GITP4" 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" | "$GITP4" submit && +		p4 changes //depot/... >wc && +		test_line_count = 2 wc +	) +' + +test_expect_success 'skipSubmitEdit' ' +	"$GITP4" 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" && +		"$GITP4" submit && +		p4 changes //depot/... >wc && +		test_line_count = 3 wc +	) +' + +test_expect_success 'skipSubmitEditCheck' ' +	"$GITP4" 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" && +		"$GITP4" 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' ' +	"$GITP4" clone --dest="$git" //depot && +	test_when_finished cleanup_git && +	ed="$TRASH_DIRECTORY/ed.sh" && +	test_when_finished "rm \"$ed\"" && +	cat >"$ed" <<-EOF && +		#!$SHELL_PATH +		sleep 1 +		touch "\$1" +		exit 0 +	EOF +	chmod 755 "$ed" && +	( +		cd "$git" && +		echo line >>file1 && +		git commit -a -m "change 5" && +		EDITOR="\"$ed\"" "$GITP4" submit && +		p4 changes //depot/... >wc && +		test_line_count = 5 wc +	) +' + +test_expect_success 'kill p4d' ' +	kill_p4d +' + +test_done  | 
