diff mbox series

t3701: two subtests are fixed

Message ID cf6aee9acadfb666de6b24b9ed63e1a65bfc009e.1655220242.git.git@grubix.eu (mailing list archive)
State New, archived
Headers show
Series t3701: two subtests are fixed | expand

Commit Message

Michael J Gruber June 14, 2022, 3:26 p.m. UTC
0527ccb1b5 ("add -i: default to the built-in implementation", 2021-11-30)
switched to the implementation which fixed to subtest. Mark them as
expect_success now.

Signed-off-by: Michael J Gruber <git@grubix.eu>
---
I did check the ML but may have missed a series which contains this. (I
only found one which tries to make the test output clearer in CI.)

 t/t3701-add-interactive.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Derrick Stolee June 14, 2022, 3:48 p.m. UTC | #1
On 6/14/2022 11:26 AM, Michael J Gruber wrote:
> 0527ccb1b5 ("add -i: default to the built-in implementation", 2021-11-30)
> switched to the implementation which fixed to subtest. Mark them as
> expect_success now.

s/to subtest/two subtests/

> 
> Signed-off-by: Michael J Gruber <git@grubix.eu>
> ---
> I did check the ML but may have missed a series which contains this. (I
> only found one which tries to make the test output clearer in CI.)

The breakage vanished as of 1fc1879839 (Merge branch 'js/use-builtin-add-i',
2022-05-30). The direct change is likely 0527ccb1b5 (add -i: default to the
built-in implementation, 2021-11-30), but that commit actually fails the
tests, it seems. Something about a parallel topic must have made it work at
the merge point.

Patch looks good. Thanks!

-Stolee
Todd Zullinger June 15, 2022, 1:25 a.m. UTC | #2
Michael J Gruber wrote:
> 0527ccb1b5 ("add -i: default to the built-in implementation", 2021-11-30)
> switched to the implementation which fixed to subtest. Mark them as
> expect_success now.
> 
> Signed-off-by: Michael J Gruber <git@grubix.eu>
> ---
> I did check the ML but may have missed a series which contains this. (I
> only found one which tries to make the test output clearer in CI.)

I sent a patch (<20220614185218.1091413-1-tmz@pobox.com>) as
well.  I mentioned the commits which added these tests, but
didn't call out 0527ccb1b5 (add -i: default to the built-in
implementation, 2021-11-30) explicitly, which is a good
addition.

I'm just happy to see the builtin `add -i` as the default.

>  t/t3701-add-interactive.sh | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh
> index 94537a6b40..9a06638704 100755
> --- a/t/t3701-add-interactive.sh
> +++ b/t/t3701-add-interactive.sh
> @@ -538,7 +538,7 @@ test_expect_success 'split hunk "add -p (edit)"' '
>  	! grep "^+15" actual
>  '
>  
> -test_expect_failure 'split hunk "add -p (no, yes, edit)"' '
> +test_expect_success 'split hunk "add -p (no, yes, edit)"' '
>  	test_write_lines 5 10 20 21 30 31 40 50 60 >test &&
>  	git reset &&
>  	# test sequence is s(plit), n(o), y(es), e(dit)
> @@ -562,7 +562,7 @@ test_expect_success 'split hunk with incomplete line at end' '
>  	test_must_fail git grep --cached before
>  '
>  
> -test_expect_failure 'edit, adding lines to the first hunk' '
> +test_expect_success 'edit, adding lines to the first hunk' '
>  	test_write_lines 10 11 20 30 40 50 51 60 >test &&
>  	git reset &&
>  	tr _ " " >patch <<-EOF &&
Taylor Blau June 15, 2022, 1:55 a.m. UTC | #3
On Tue, Jun 14, 2022 at 05:26:33PM +0200, Michael J Gruber wrote:
> 0527ccb1b5 ("add -i: default to the built-in implementation", 2021-11-30)
> switched to the implementation which fixed to subtest. Mark them as
> expect_success now.

Since v2.37.0-rc0 is the first tag to contain 0527ccb1b5, I bisected
between v2.36 (when these two tests indeed failed) and the tip of
master (8168d5e9c2 (Git 2.37-rc0, 2022-06-13) at the time of writing).

And I also got 0527ccb1b5, so the bisection looks good to me, and this
was likely an oversight when 0527ccb1b5 was written. Thanks for putting
the author on the CC list just in case there is any additional context.

Otherwise, this patch looks good to me.

Thanks,
Taylor
Johannes Schindelin June 15, 2022, 2:50 p.m. UTC | #4
Hi Michael,

On Tue, 14 Jun 2022, Michael J Gruber wrote:

> 0527ccb1b5 ("add -i: default to the built-in implementation", 2021-11-30)
> switched to the implementation which fixed to subtest. Mark them as
> expect_success now.

Good catch!

However... that commit specifically contains this change:

	diff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh
	index cc62616d806..660ebe8d108 100755
	--- a/ci/run-build-and-tests.sh
	+++ b/ci/run-build-and-tests.sh
	@@ -29,7 +29,7 @@ linux-gcc)
		export GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=1
		export GIT_TEST_MULTI_PACK_INDEX=1
		export GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=1
	-       export GIT_TEST_ADD_I_USE_BUILTIN=1
	+       export GIT_TEST_ADD_I_USE_BUILTIN=0
		export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=master
		export GIT_TEST_WRITE_REV_INDEX=1
		export GIT_TEST_CHECKOUT_WORKERS=2

The intention is to have t3701 be run with the non-built-in version of
`git add -i` in the `linux-gcc` job, and I am surprised that those two
tests do not fail for you in that case.

Did you run this through the CI builds?

Thank you,
Dscho
Michael J Gruber June 16, 2022, 9:14 a.m. UTC | #5
Johannes Schindelin venit, vidit, dixit 2022-06-15 16:50:40:
> Hi Michael,

Hallo Dscho!

> On Tue, 14 Jun 2022, Michael J Gruber wrote:
> 
> > 0527ccb1b5 ("add -i: default to the built-in implementation", 2021-11-30)
> > switched to the implementation which fixed to subtest. Mark them as
> > expect_success now.
> 
> Good catch!
 
I'm no list regular anymore, but still a "next+ regular". While
experimenting with my own patch I noticed something got fixed
unexpectedly. That goes to show that these unexpected successes
(from expect_failure) go unnoticed too easily. I had missed this on my
regular rebuilds.

> However... that commit specifically contains this change:
> 
>         diff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh
>         index cc62616d806..660ebe8d108 100755
>         --- a/ci/run-build-and-tests.sh
>         +++ b/ci/run-build-and-tests.sh
>         @@ -29,7 +29,7 @@ linux-gcc)
>                 export GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=1
>                 export GIT_TEST_MULTI_PACK_INDEX=1
>                 export GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=1
>         -       export GIT_TEST_ADD_I_USE_BUILTIN=1
>         +       export GIT_TEST_ADD_I_USE_BUILTIN=0
>                 export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=master
>                 export GIT_TEST_WRITE_REV_INDEX=1
>                 export GIT_TEST_CHECKOUT_WORKERS=2
> 
> The intention is to have t3701 be run with the non-built-in version of
> `git add -i` in the `linux-gcc` job, and I am surprised that those two
> tests do not fail for you in that case.
> 
> Did you run this through the CI builds?

That's why I mentioned "no list regular" - I didn't know about that knob
nor the intention to have the test suite run with either implementation
(rather than switching to the new one for good).

I do local builds, usually with

```
DEVELOPER=1 (which I had to disable during the bisect run; gcc12...)
DEFAULT_TEST_TARGET=prove
GIT_PROVE_OPTS=--jobs 4
GIT_TEST_OPTS=--root=/dev/shm/t --chain-lint
SHELL_PATH=/bin/dash
SKIP_DASHED_BUILT_INS=y
```

in config.mak. Nothing else strikes me as potentially relevant.

Ævar noticed this and has a better version of my patch, I think.

Michael
Junio C Hamano June 16, 2022, 4:50 p.m. UTC | #6
Michael J Gruber <git@grubix.eu> writes:

> Johannes Schindelin venit, vidit, dixit 2022-06-15 16:50:40:
>> Hi Michael,
>
> Hallo Dscho!
>
>> On Tue, 14 Jun 2022, Michael J Gruber wrote:
>> 
>> > 0527ccb1b5 ("add -i: default to the built-in implementation", 2021-11-30)
>> > switched to the implementation which fixed to subtest. Mark them as
>> > expect_success now.
>> 
>> Good catch!
>  
> I'm no list regular anymore, but still a "next+ regular". While
> experimenting with my own patch I noticed something got fixed
> unexpectedly. That goes to show that these unexpected successes
> (from expect_failure) go unnoticed too easily. I had missed this on my
> regular rebuilds.

Thanks for being a "next+ regular".  They are giving us a valuable
service to catch bugs and questionable design decisions before they
hit the "master" branch.

> Ævar noticed this and has a better version of my patch, I think.

Yup.  Eventually we will make it even impossible to opt out of the
built-in variant, but until then, we'd need the conditional stuff.

Thanks.
Johannes Schindelin June 18, 2022, 11:55 a.m. UTC | #7
Hi Michael,

On Thu, 16 Jun 2022, Michael J Gruber wrote:

> Johannes Schindelin venit, vidit, dixit 2022-06-15 16:50:40:
>
> > On Tue, 14 Jun 2022, Michael J Gruber wrote:
> >
> > > 0527ccb1b5 ("add -i: default to the built-in implementation", 2021-11-30)
> > > switched to the implementation which fixed to subtest. Mark them as
> > > expect_success now.
> >
> > Good catch!
>
> I'm no list regular anymore, but still a "next+ regular". While
> experimenting with my own patch I noticed something got fixed
> unexpectedly. That goes to show that these unexpected successes
> (from expect_failure) go unnoticed too easily. I had missed this on my
> regular rebuilds.

Makes sense.

> > However... that commit specifically contains this change:
> >
> >         diff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh
> >         index cc62616d806..660ebe8d108 100755
> >         --- a/ci/run-build-and-tests.sh
> >         +++ b/ci/run-build-and-tests.sh
> >         @@ -29,7 +29,7 @@ linux-gcc)
> >                 export GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=1
> >                 export GIT_TEST_MULTI_PACK_INDEX=1
> >                 export GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=1
> >         -       export GIT_TEST_ADD_I_USE_BUILTIN=1
> >         +       export GIT_TEST_ADD_I_USE_BUILTIN=0
> >                 export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=master
> >                 export GIT_TEST_WRITE_REV_INDEX=1
> >                 export GIT_TEST_CHECKOUT_WORKERS=2
> >
> > The intention is to have t3701 be run with the non-built-in version of
> > `git add -i` in the `linux-gcc` job, and I am surprised that those two
> > tests do not fail for you in that case.
> >
> > Did you run this through the CI builds?
>
> That's why I mentioned "no list regular" - I didn't know about that knob
> nor the intention to have the test suite run with either implementation
> (rather than switching to the new one for good).
>
> I do local builds, usually with
>
> ```
> DEVELOPER=1 (which I had to disable during the bisect run; gcc12...)
> DEFAULT_TEST_TARGET=prove
> GIT_PROVE_OPTS=--jobs 4
> GIT_TEST_OPTS=--root=/dev/shm/t --chain-lint
> SHELL_PATH=/bin/dash
> SKIP_DASHED_BUILT_INS=y
> ```
>
> in config.mak. Nothing else strikes me as potentially relevant.
>
> Ævar noticed this and has a better version of my patch, I think.

So you did not find it utterly rude and presumptuous that somebody sent a
new iteration of your patch without even so much as consulting with you
whether you're okay with this? I salute your forbearance, then.

Besides, it is not really a better version of your patch. That would have
been:

-- snip --
diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh
index 94537a6b40a..6d1032fe8ae 100755
--- a/t/t3701-add-interactive.sh
+++ b/t/t3701-add-interactive.sh
@@ -538,7 +538,9 @@ test_expect_success 'split hunk "add -p (edit)"' '
 	! grep "^+15" actual
 '

-test_expect_failure 'split hunk "add -p (no, yes, edit)"' '
+test_lazy_prereq BUILTIN_ADD_I 'test_bool_env GIT_TEST_ADD_I_USE_BUILTIN true'
+
+test_expect_success BUILTIN_ADD_I 'split hunk "add -p (no, yes, edit)"' '
 	test_write_lines 5 10 20 21 30 31 40 50 60 >test &&
 	git reset &&
 	# test sequence is s(plit), n(o), y(es), e(dit)
@@ -562,7 +564,7 @@ test_expect_success 'split hunk with incomplete line at end' '
 	test_must_fail git grep --cached before
 '

-test_expect_failure 'edit, adding lines to the first hunk' '
+test_expect_failure BUILTIN_ADD_I 'edit, adding lines to the first hunk' '
 	test_write_lines 10 11 20 30 40 50 51 60 >test &&
 	git reset &&
 	tr _ " " >patch <<-EOF &&
-- snap --

As you can see, this is _actually_ building on your work rather than
replacing it.

But since that replacement made it into -rc1, I will stop spending brain
cycles on it.

Thank you for your contribution, I am glad that you keep sending patches
to the Git mailing list!
Dscho
Junio C Hamano June 21, 2022, 3:45 p.m. UTC | #8
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

>> in config.mak. Nothing else strikes me as potentially relevant.
>>
>> Ævar noticed this and has a better version of my patch, I think.
>
> So you did not find it utterly rude and presumptuous that somebody sent a
> new iteration of your patch without even so much as consulting with you
> whether you're okay with this? I salute your forbearance, then.

I had an impression that these (wasn't there another one) were
independent discoveries and patching that happened at the same time.

> Besides, it is not really a better version of your patch. That would have
> been:
>
> -- snip --
> diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh
> index 94537a6b40a..6d1032fe8ae 100755
> --- a/t/t3701-add-interactive.sh
> +++ b/t/t3701-add-interactive.sh
> @@ -538,7 +538,9 @@ test_expect_success 'split hunk "add -p (edit)"' '
>  	! grep "^+15" actual
>  '
>
> -test_expect_failure 'split hunk "add -p (no, yes, edit)"' '
> +test_lazy_prereq BUILTIN_ADD_I 'test_bool_env GIT_TEST_ADD_I_USE_BUILTIN true'
> +
> +test_expect_success BUILTIN_ADD_I 'split hunk "add -p (no, yes, edit)"' '
>  	test_write_lines 5 10 20 21 30 31 40 50 60 >test &&
>  	git reset &&
>  	# test sequence is s(plit), n(o), y(es), e(dit)

Prerequisite lets you skip.  

This stops saying that "with scripted version 'add -p' does not
behave in the way we want to see, and we want to leave us a mental
note about it".  I do not know if that is what we want.

Once scripted version gets fully retired, it of course stops
mattering ;-)

> @@ -562,7 +564,7 @@ test_expect_success 'split hunk with incomplete line at end' '
>  	test_must_fail git grep --cached before
>  '
>
> -test_expect_failure 'edit, adding lines to the first hunk' '
> +test_expect_failure BUILTIN_ADD_I 'edit, adding lines to the first hunk' '

I am not sure if this is a good change, quite honestly.  With
s/failure/success/, perhaps, but not in the posted form.
Michael J Gruber June 22, 2022, 8:24 a.m. UTC | #9
Junio C Hamano venit, vidit, dixit 2022-06-21 17:45:04:
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
> >> in config.mak. Nothing else strikes me as potentially relevant.
> >>
> >> Ævar noticed this and has a better version of my patch, I think.
> >
> > So you did not find it utterly rude and presumptuous that somebody sent a
> > new iteration of your patch without even so much as consulting with you
> > whether you're okay with this? I salute your forbearance, then.
> 
> I had an impression that these (wasn't there another one) were
> independent discoveries and patching that happened at the same time.

Yes, while it looked funny at first, Ævar explained it well. So,
everything is fine for me. Besides, we're no strangers to each other ;)

As for the question which version covers the expectations best: I'm
lacking the necessary overview of the expectations (which implementation
to check by default, in CI etc.) which is why I won't chime in on that.
Johannes Schindelin June 23, 2022, 3:55 p.m. UTC | #10
Hi Junio,

I did not want to spend more brain cycles about this, but since you left a
few questions hanging...

On Tue, 21 Jun 2022, Junio C Hamano wrote:

> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
> >> in config.mak. Nothing else strikes me as potentially relevant.
> >>
> >> Ævar noticed this and has a better version of my patch, I think.
> >
> > So you did not find it utterly rude and presumptuous that somebody sent a
> > new iteration of your patch without even so much as consulting with you
> > whether you're okay with this? I salute your forbearance, then.
>
> I had an impression that these (wasn't there another one) were
> independent discoveries and patching that happened at the same time.

If this was the first time an unsolicited iteration was sent on another
contributor's behalf, I would be able to give the benefit of the doubt.
Even if it was the second or third time. It's been many more times,
though. And it is not leaving the impression of an inviting, welcoming
culture I would like to see on the Git mailing list. But it's your
project to lead, not mine, therefore I have no say in this.

> > -- snip --
> > diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh
> > index 94537a6b40a..6d1032fe8ae 100755
> > --- a/t/t3701-add-interactive.sh
> > +++ b/t/t3701-add-interactive.sh
> > @@ -538,7 +538,9 @@ test_expect_success 'split hunk "add -p (edit)"' '
> >  	! grep "^+15" actual
> >  '
> >
> > -test_expect_failure 'split hunk "add -p (no, yes, edit)"' '
> > +test_lazy_prereq BUILTIN_ADD_I 'test_bool_env GIT_TEST_ADD_I_USE_BUILTIN true'
> > +
> > +test_expect_success BUILTIN_ADD_I 'split hunk "add -p (no, yes, edit)"' '
> >  	test_write_lines 5 10 20 21 30 31 40 50 60 >test &&
> >  	git reset &&
> >  	# test sequence is s(plit), n(o), y(es), e(dit)
>
> Prerequisite lets you skip.

Yes. It lets you skip a test for a known breakage in code we're never
going to fix because we're going to delete it instead, for example. Saving
some electricity, too, by avoiding to run said test case.

> > @@ -562,7 +564,7 @@ test_expect_success 'split hunk with incomplete line at end' '
> >  	test_must_fail git grep --cached before
> >  '
> >
> > -test_expect_failure 'edit, adding lines to the first hunk' '
> > +test_expect_failure BUILTIN_ADD_I 'edit, adding lines to the first hunk' '
>
> I am not sure if this is a good change, quite honestly.  With
> s/failure/success/, perhaps, but not in the posted form.

Indeed, this was an oversight on my part, as you might have guessed from
the `failure` being replaced with `success` in the previous hunk. I simply
forgot it here.

But a more complicated solution for the same problem was applied directly
to the main branch, so I'd like to shift my attention to problems where my
input has a chance of mattering.

Ciao,
Dscho
Junio C Hamano June 23, 2022, 4:33 p.m. UTC | #11
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> But a more complicated solution for the same problem was applied directly
> to the main branch, so I'd like to shift my attention to problems where my
> input has a chance of mattering.

Any reasonable input makes difference.  You can even improve incrementally
with follow-up patches.

Thanks.
diff mbox series

Patch

diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh
index 94537a6b40..9a06638704 100755
--- a/t/t3701-add-interactive.sh
+++ b/t/t3701-add-interactive.sh
@@ -538,7 +538,7 @@  test_expect_success 'split hunk "add -p (edit)"' '
 	! grep "^+15" actual
 '
 
-test_expect_failure 'split hunk "add -p (no, yes, edit)"' '
+test_expect_success 'split hunk "add -p (no, yes, edit)"' '
 	test_write_lines 5 10 20 21 30 31 40 50 60 >test &&
 	git reset &&
 	# test sequence is s(plit), n(o), y(es), e(dit)
@@ -562,7 +562,7 @@  test_expect_success 'split hunk with incomplete line at end' '
 	test_must_fail git grep --cached before
 '
 
-test_expect_failure 'edit, adding lines to the first hunk' '
+test_expect_success 'edit, adding lines to the first hunk' '
 	test_write_lines 10 11 20 30 40 50 51 60 >test &&
 	git reset &&
 	tr _ " " >patch <<-EOF &&