threads / patch / 41644

patcht7610-mergetool: add test cases for tempfile behavior

Subject: [PATCH] t7610-mergetool: add test cases for tempfile behavior

## tl;dr

2 messages between Mar 9, 2016 and Mar 9, 2016. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

David Aguilar· Mar 9, 2016, 05:36 UTC · lore

Ensure that mergetool.keepTemporaries is honored when resolving delete/delete conflicts.

Ensure that stderr stays empty, and that worktree directories created by mergetool to are removed.

Signed-off-by: David Aguilar <davvid@gmail.com>
---
 t/t7610-mergetool.sh | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
Show changes to t/t7610-mergetool.sh +34 −0
diff --git a/t/t7610-mergetool.sh b/t/t7610-mergetool.sh
index f1668be..cf2eceb 100755
--- a/t/t7610-mergetool.sh
+++ b/t/t7610-mergetool.sh
@@ -273,6 +273,40 @@ test_expect_success 'mergetool delete/delete conflict' '
 	git reset --hard HEAD
 '
 
+test_expect_success 'mergetool honors tempfile config for deleted files' '
+	test_config mergetool.keepTemporaries false &&
+	! git merge move-to-b &&
+	echo d | git mergetool a/a/file.txt &&
+	! test -d a &&
+	git reset --hard HEAD
+'
+
+test_expect_success 'mergetool produces no errors when keepBackup is used' '
+	test_config mergetool.keepBackup true &&
+	! git merge move-to-b &&
+	: >expect &&
+	echo d | git mergetool a/a/file.txt 2>actual &&
+	test_cmp expect actual &&
+	! test -d a &&
+	git reset --hard HEAD
+'
+
+test_expect_success 'mergetool keeps tempfiles when aborting delete/delete' '
+	test_config mergetool.keepTemporaries true &&
+	! git merge move-to-b &&
+	! (echo a; echo n) | git mergetool a/a/file.txt &&
+	test -d a/a &&
+	cat  >expect <<\-EOF &&
+file_BASE_.txt
+file_LOCAL_.txt
+file_REMOTE_.txt
+-EOF
+	ls -1 a/a | sed -e "s/[0-9]*//g" >actual &&
+	test_cmp expect actual &&
+	git clean -fdx &&
+	git reset --hard HEAD
+'
+
 test_expect_success 'deleted vs modified submodule' '
 	git checkout -b test6 branch1 &&
 	git submodule update -N &&
-- 
2.8.0.rc1.3.g475af66.dirty
Junio C Hamano· Mar 9, 2016, 20:43 UTC · re: David Aguilar · lore

Re: [PATCH] t7610-mergetool: add test cases for tempfile behavior

David Aguilar <davvid@gmail.com> writes:
Show 10 quoted lines
> Ensure that mergetool.keepTemporaries is honored when resolving
> delete/delete conflicts.
>
> Ensure that stderr stays empty, and that worktree directories
> created by mergetool to are removed.
>
> Signed-off-by: David Aguilar <davvid@gmail.com>
> ---
>  t/t7610-mergetool.sh | 34 ++++++++++++++++++++++++++++++++++
>  1 file changed, 34 insertions(+)
Thanks.
Show 11 quoted lines
> diff --git a/t/t7610-mergetool.sh b/t/t7610-mergetool.sh
> index f1668be..cf2eceb 100755
> --- a/t/t7610-mergetool.sh
> +++ b/t/t7610-mergetool.sh
> @@ -273,6 +273,40 @@ test_expect_success 'mergetool delete/delete conflict' '
>  	git reset --hard HEAD
>  '
>  
> +test_expect_success 'mergetool honors tempfile config for deleted files' '
> +	test_config mergetool.keepTemporaries false &&
> +	! git merge move-to-b &&

We'd like to catch a newly built Git segfaulting, so let's change this to:

	test_must_fail git merge move-to-b &&
Two other "! git merge" in this patch need be changed the same way.
Show 25 quoted lines
> +	echo d | git mergetool a/a/file.txt &&
> +	! test -d a &&
> +	git reset --hard HEAD
> +'
> +
> +test_expect_success 'mergetool produces no errors when keepBackup is used' '
> +	test_config mergetool.keepBackup true &&
> +	! git merge move-to-b &&
> +	: >expect &&
> +	echo d | git mergetool a/a/file.txt 2>actual &&
> +	test_cmp expect actual &&
> +	! test -d a &&
> +	git reset --hard HEAD
> +'
> +
> +test_expect_success 'mergetool keeps tempfiles when aborting delete/delete' '
> +	test_config mergetool.keepTemporaries true &&
> +	! git merge move-to-b &&
> +	! (echo a; echo n) | git mergetool a/a/file.txt &&
> +	test -d a/a &&
> +	cat  >expect <<\-EOF &&
> +file_BASE_.txt
> +file_LOCAL_.txt
> +file_REMOTE_.txt
> +-EOF

Let's use EOF not -EOF as the end marker for here document, but use a dash in front of the marker to allow us indent the contents of the here document, like this:

	cat >expect <<-\EOF &&
	file_BASE_.txt
	file_LOCAL_.txt
	file_REMOTE_.txt
	EOF
While at it, let's lose the extra SP after "cat".
Show 8 quoted lines
> +	ls -1 a/a | sed -e "s/[0-9]*//g" >actual &&
> +	test_cmp expect actual &&
> +	git clean -fdx &&
> +	git reset --hard HEAD
> +'
>  test_expect_success 'deleted vs modified submodule' '
>  	git checkout -b test6 branch1 &&
>  	git submodule update -N &&

I'll queue this patch with the above-mentioned fixups squashed in, but I suspect that another new test added by the previous patches have the same "! git merge" issue we'd want to correct before we start to move the topic to 'next' and to 'master', so perhaps you'd want to reroll these three patches as two patches (i.e. squashing this one to 1/2, correcting the test in 2/2) after 2.8 final ships?

Thanks.

← back to recent threads