threads / patch / 46123

patcht3200: add test for single parameter passed to -m option

Subject: [PATCH] t3200: add test for single parameter passed to -m option

## tl;dr

6 messages between Jun 5, 2017 and Jun 13, 2017. Diffs are folded; open one to read it.

replies: 5people: 2as markdown or json

Sahil Dua· Jun 5, 2017, 22:38 UTC · lore

Adds a test for the case when only one parameter is passed to '-m' (move/rename) option.

For example - if 'git branch -m bbb' is run, it should rename the currently checked out branch to bbb. There was no test for this particular case with only one parameter for -m option. However, there's one similar test case for -M option.

Signed-off-by: Sahil Dua <sahildua2305@gmail.com>
---
 t/t3200-branch.sh | 8 ++++++++
 1 file changed, 8 insertions(+)
Show changes to t/t3200-branch.sh +8 −1
diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
index fe62e7c775da6..7504f14bc52f8 100755
--- a/t/t3200-branch.sh
+++ b/t/t3200-branch.sh
@@ -100,6 +100,14 @@ test_expect_success 'git branch -m n/n n should work' '
 	git reflog exists refs/heads/n
 '
 
+test_expect_success 'git branch -m bbb should rename checked out branch' '
+	test_when_finished git branch -d bbb &&
+	test_when_finished git checkout master &&
+	git checkout -b aaa &&
+	git branch -m bbb &&
+	git reflog exists refs/heads/bbb
+'
+
 test_expect_success 'git branch -m o/o o should fail when o/p exists' '
 	git branch o/o &&
 	git branch o/p &&

--
https://github.com/git/git/pull/371
Junio C Hamano· Jun 6, 2017, 01:27 UTC · re: Sahil Dua · lore

Re: [PATCH] t3200: add test for single parameter passed to -m option

Sahil Dua <sahildua2305@gmail.com> writes:
Show 28 quoted lines
> Adds a test for the case when only one parameter is passed to '-m'
> (move/rename) option.
>
> For example - if 'git branch -m bbb' is run, it should rename the
> currently checked out branch to bbb. There was no test for this
> particular case with only one parameter for -m option. However,
> there's one similar test case for -M option.
>
> Signed-off-by: Sahil Dua <sahildua2305@gmail.com>
> ---
>  t/t3200-branch.sh | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
> index fe62e7c775da6..7504f14bc52f8 100755
> --- a/t/t3200-branch.sh
> +++ b/t/t3200-branch.sh
> @@ -100,6 +100,14 @@ test_expect_success 'git branch -m n/n n should work' '
>  	git reflog exists refs/heads/n
>  '
>  
> +test_expect_success 'git branch -m bbb should rename checked out branch' '
> +	test_when_finished git branch -d bbb &&
> +	test_when_finished git checkout master &&
> +	git checkout -b aaa &&
> +	git branch -m bbb &&
> +	git reflog exists refs/heads/bbb
> +'

Looks almost good. Don't we want to also make sure that HEAD points at bbb branch, e.g.

	git symbolic-ref HEAD >actual &&
	echo refs/heads/bbb >expect &&
	test_cmp expect actual &&
after the "do we have reflog for the bbb branch?" test?

Also, I suspect that we care about the reflog that is moved to 'bbb' retains entries created for 'aaa'. So perhaps "reflog exists" needs to be replaced by something like

	git checkout -b aaa &&
	git commit --allow-empty -m "a new commit" &&
	git rev-parse aaa@{1} >expect &&
	git branch -m bbb &&
	# the topmost entry is about branch creation
	git rev-parse bbb@{2} >actual
no?
Show 6 quoted lines
>  test_expect_success 'git branch -m o/o o should fail when o/p exists' '
>  	git branch o/o &&
>  	git branch o/p &&
>
> --
> https://github.com/git/git/pull/371
Sahil Dua· Jun 6, 2017, 08:51 UTC · re: Junio C Hamano · lore

Re: [PATCH] t3200: add test for single parameter passed to -m option

On Tue, Jun 6, 2017 at 3:27 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 52 quoted lines
> Sahil Dua <sahildua2305@gmail.com> writes:
>
>> Adds a test for the case when only one parameter is passed to '-m'
>> (move/rename) option.
>>
>> For example - if 'git branch -m bbb' is run, it should rename the
>> currently checked out branch to bbb. There was no test for this
>> particular case with only one parameter for -m option. However,
>> there's one similar test case for -M option.
>>
>> Signed-off-by: Sahil Dua <sahildua2305@gmail.com>
>> ---
>>  t/t3200-branch.sh | 8 ++++++++
>>  1 file changed, 8 insertions(+)
>>
>> diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
>> index fe62e7c775da6..7504f14bc52f8 100755
>> --- a/t/t3200-branch.sh
>> +++ b/t/t3200-branch.sh
>> @@ -100,6 +100,14 @@ test_expect_success 'git branch -m n/n n should work' '
>>       git reflog exists refs/heads/n
>>  '
>>
>> +test_expect_success 'git branch -m bbb should rename checked out branch' '
>> +     test_when_finished git branch -d bbb &&
>> +     test_when_finished git checkout master &&
>> +     git checkout -b aaa &&
>> +     git branch -m bbb &&
>> +     git reflog exists refs/heads/bbb
>> +'
>
> Looks almost good.  Don't we want to also make sure that HEAD points
> at bbb branch, e.g.
>
>         git symbolic-ref HEAD >actual &&
>         echo refs/heads/bbb >expect &&
>         test_cmp expect actual &&
>
> after the "do we have reflog for the bbb branch?" test?
>
> Also, I suspect that we care about the reflog that is moved to 'bbb'
> retains entries created for 'aaa'.  So perhaps "reflog exists" needs
> to be replaced by something like
>
>         git checkout -b aaa &&
>         git commit --allow-empty -m "a new commit" &&
>         git rev-parse aaa@{1} >expect &&
>         git branch -m bbb &&
>         # the topmost entry is about branch creation
>         git rev-parse bbb@{2} >actual
>
> no?

Both of these changes make complete sense and in my opinion will increase the quality of the tests if applied to the other tests too. I notice that no other test for this (-m|-M) option checks if the branch is actually checked out. Similarly, no other test checks if the operation retains reflog entries. They just check if the new reflog exists.

Do you think I should make similar changes to the other tests for (-m|-M) option as well?

Show 7 quoted lines
>
>>  test_expect_success 'git branch -m o/o o should fail when o/p exists' '
>>       git branch o/o &&
>>       git branch o/p &&
>>
>> --
>> https://github.com/git/git/pull/371
Sahil Dua· Jun 11, 2017, 11:42 UTC · re: Sahil Dua · lore

[PATCH v2] t3200: add test for single parameter passed to -m option

Add a test for the case when only one parameter is passed to '-m' (move/rename) option.

For example - if 'git branch -m bbb' is run, it should rename the currently checked out branch to bbb. There was no test for this particular case with only one parameter for -m option. However, there's one similar test case for -M option.

Add test for making sure HEAD points to the bbb (new branch name). Also add a test for making sure the reflog that is moved to 'bbb' retains entries created for the currently checked out branch.

Signed-off-by: Sahil Dua <sahildua2305@gmail.com>
---
 t/t3200-branch.sh | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
Show changes to t/t3200-branch.sh +14 −1
diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
index fe62e7c775da6..720400c0e42af 100755
--- a/t/t3200-branch.sh
+++ b/t/t3200-branch.sh
@@ -100,6 +100,20 @@ test_expect_success 'git branch -m n/n n should work' '
 	git reflog exists refs/heads/n
 '
 
+test_expect_success 'git branch -m bbb should rename checked out branch' '
+	test_when_finished git branch -D bbb &&
+	test_when_finished git checkout master &&
+	git checkout -b aaa &&
+	git commit --allow-empty -m "a new commit" &&
+	git rev-parse aaa@{0} >expect &&
+	git branch -m bbb &&
+	git rev-parse bbb@{1} >actual &&
+	test_cmp expect actual &&
+	git symbolic-ref HEAD >actual &&
+	echo refs/heads/bbb >expect &&
+	test_cmp expect actual
+'
+
 test_expect_success 'git branch -m o/o o should fail when o/p exists' '
 	git branch o/o &&
 	git branch o/p &&

--
https://github.com/git/git/pull/371
Junio C Hamano· Jun 12, 2017, 15:16 UTC · re: Sahil Dua · lore

Re: [PATCH v2] t3200: add test for single parameter passed to -m option

Sahil Dua <sahildua2305@gmail.com> writes:
Show 34 quoted lines
> Add a test for the case when only one parameter is passed to '-m'
> (move/rename) option.
>
> For example - if 'git branch -m bbb' is run, it should rename the
> currently checked out branch to bbb. There was no test for this
> particular case with only one parameter for -m option. However,
> there's one similar test case for -M option.
>
> Add test for making sure HEAD points to the bbb (new branch name). Also
> add a test for making sure the reflog that is moved to 'bbb' retains
> entries created for the currently checked out branch.
>
> Signed-off-by: Sahil Dua <sahildua2305@gmail.com>
> ---
>  t/t3200-branch.sh | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
>
> diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
> index fe62e7c775da6..720400c0e42af 100755
> --- a/t/t3200-branch.sh
> +++ b/t/t3200-branch.sh
> @@ -100,6 +100,20 @@ test_expect_success 'git branch -m n/n n should work' '
>  	git reflog exists refs/heads/n
>  '
>  
> +test_expect_success 'git branch -m bbb should rename checked out branch' '
> +	test_when_finished git branch -D bbb &&
> +	test_when_finished git checkout master &&
> +	git checkout -b aaa &&
> +	git commit --allow-empty -m "a new commit" &&
> +	git rev-parse aaa@{0} >expect &&
> +	git branch -m bbb &&
> +	git rev-parse bbb@{1} >actual &&
> +	test_cmp expect actual &&

I think future readers of this test would appreciate if there were some comment explaining why aaa@{0} and bbb@{1} (not bbb@{0}) are expected to be the same here.

Show 11 quoted lines
> +	git symbolic-ref HEAD >actual &&
> +	echo refs/heads/bbb >expect &&
> +	test_cmp expect actual
> +'
> +
>  test_expect_success 'git branch -m o/o o should fail when o/p exists' '
>  	git branch o/o &&
>  	git branch o/p &&
>
> --
> https://github.com/git/git/pull/371
Other than that, looks sensible to me.
Thanks.
Sahil Dua· Jun 13, 2017, 10:47 UTC · re: Sahil Dua · lore

[PATCH v3] t3200: add test for single parameter passed to -m option

Add a test for the case when only one parameter is passed to '-m' (move/rename) option.

For example - if 'git branch -m bbb' is run while checked out on aaa branch, it should rename the currently checked out branch to bbb. There was no test for this particular case with only one parameter for -m option. However, there's one similar test case for -M option.

Add test for making sure HEAD points to the bbb (new branch name). Also add a test for making sure the reflog that is moved to 'bbb' retains entries created for the currently checked out branch. Note that since the topmost entry on reflog for bbb will be about branch creation, we compare bbb@{1} (instead of bbb@{0}) with aaa@{0} to make sure the reflog for bbb retains entries from aaa.

Signed-off-by: Sahil Dua <sahildua2305@gmail.com>
---
 t/t3200-branch.sh | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
Show changes to t/t3200-branch.sh +17 −1
diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
index fe62e7c775da6..8c9cd70696f87 100755
--- a/t/t3200-branch.sh
+++ b/t/t3200-branch.sh
@@ -100,6 +100,23 @@ test_expect_success 'git branch -m n/n n should work' '
 	git reflog exists refs/heads/n
 '
 
+# The topmost entry in reflog for branch bbb is about branch creation.
+# Hence, we compare bbb@{1} (instead of bbb@{0}) with aaa@{0}.
+
+test_expect_success 'git branch -m bbb should rename checked out branch' '
+	test_when_finished git branch -D bbb &&
+	test_when_finished git checkout master &&
+	git checkout -b aaa &&
+	git commit --allow-empty -m "a new commit" &&
+	git rev-parse aaa@{0} >expect &&
+	git branch -m bbb &&
+	git rev-parse bbb@{1} >actual &&
+	test_cmp expect actual &&
+	git symbolic-ref HEAD >actual &&
+	echo refs/heads/bbb >expect &&
+	test_cmp expect actual
+'
+
 test_expect_success 'git branch -m o/o o should fail when o/p exists' '
 	git branch o/o &&
 	git branch o/p &&

--
https://github.com/git/git/pull/371

← back to recent threads