git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RESEND] t4015: improve coverage of function context test
@ 2019-12-18 18:05 René Scharfe
  2019-12-18 20:12 ` Jeff King
  2019-12-19 17:35 ` [PATCH v2] " René Scharfe
  0 siblings, 2 replies; 5+ messages in thread
From: René Scharfe @ 2019-12-18 18:05 UTC (permalink / raw)
  To: Git Mailing List; +Cc: Jeff King, Junio C Hamano, Derrick Stolee, Eric Sunshine

Include an actual function line in the test files to check if context is
expanded to include the whole function, and add an ignored change before
function context to check if that one stays hidden, while the originally
ignored change within function context is shown.

Signed-off-by: René Scharfe <l.s.r@web.de>
---
Original submission:
https://lore.kernel.org/git/e47b77b4-7b7a-3d59-9e24-934528c5e297@web.de/

 t/t4015-diff-whitespace.sh | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/t/t4015-diff-whitespace.sh b/t/t4015-diff-whitespace.sh
index 65615e2fa9..59b2412c22 100755
--- a/t/t4015-diff-whitespace.sh
+++ b/t/t4015-diff-whitespace.sh
@@ -2051,19 +2051,24 @@ test_expect_success 'compare mixed whitespace delta across moved blocks' '
 '

 test_expect_success 'combine --ignore-blank-lines with --function-context' '
-	test_write_lines 1 "" 2 3 4 5 >a &&
-	test_write_lines 1    2 3 4   >b &&
+	test_write_lines    1 2 3 "" function 1 2 3 4 5 "" 6 7 8 9 >a &&
+	test_write_lines "" 1 2 3 "" function 1 2 3 4 5    6 7 8   >b &&
 	test_must_fail git diff --no-index \
 		--ignore-blank-lines --function-context a b >actual.raw &&
 	sed -n "/@@/,\$p" <actual.raw >actual &&
 	cat <<-\EOF >expect &&
-	@@ -1,6 +1,4 @@
+	@@ -5,11 +6,9 @@
+	 function
 	 1
-	-
 	 2
 	 3
 	 4
-	-5
+	 5
+	-
+	 6
+	 7
+	 8
+	-9
 	EOF
 	test_cmp expect actual
 '
--
2.24.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH RESEND] t4015: improve coverage of function context test
  2019-12-18 18:05 [PATCH RESEND] t4015: improve coverage of function context test René Scharfe
@ 2019-12-18 20:12 ` Jeff King
  2019-12-19 17:35   ` René Scharfe
  2019-12-19 17:35 ` [PATCH v2] " René Scharfe
  1 sibling, 1 reply; 5+ messages in thread
From: Jeff King @ 2019-12-18 20:12 UTC (permalink / raw)
  To: René Scharfe
  Cc: Git Mailing List, Junio C Hamano, Derrick Stolee, Eric Sunshine

On Wed, Dec 18, 2019 at 07:05:54PM +0100, René Scharfe wrote:

> Include an actual function line in the test files to check if context is
> expanded to include the whole function, and add an ignored change before
> function context to check if that one stays hidden, while the originally
> ignored change within function context is shown.
>
> [...]
>  test_expect_success 'combine --ignore-blank-lines with --function-context' '
> -	test_write_lines 1 "" 2 3 4 5 >a &&
> -	test_write_lines 1    2 3 4   >b &&
> +	test_write_lines    1 2 3 "" function 1 2 3 4 5 "" 6 7 8 9 >a &&
> +	test_write_lines "" 1 2 3 "" function 1 2 3 4 5    6 7 8   >b &&

I'm a little mixed on this one. This _is_ a much better test of how the
two features should be have together. But I think the reason the
original was so short was that it was added when fixing a bug where we'd
iterate off the beginning of list of lines, which now no longer happens.

Maybe we should cover both cases in two separate tests?

I'd also suggest using "a b c" for the first three lines to avoid
confusion (I don't think it's important that they're the same as the
lines inside the "function").

-Peff

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH RESEND] t4015: improve coverage of function context test
  2019-12-18 20:12 ` Jeff King
@ 2019-12-19 17:35   ` René Scharfe
  0 siblings, 0 replies; 5+ messages in thread
From: René Scharfe @ 2019-12-19 17:35 UTC (permalink / raw)
  To: Jeff King; +Cc: Git Mailing List, Junio C Hamano, Derrick Stolee, Eric Sunshine

Am 18.12.19 um 21:12 schrieb Jeff King:
> On Wed, Dec 18, 2019 at 07:05:54PM +0100, René Scharfe wrote:
>
>> Include an actual function line in the test files to check if context is
>> expanded to include the whole function, and add an ignored change before
>> function context to check if that one stays hidden, while the originally
>> ignored change within function context is shown.
>>
>> [...]
>>  test_expect_success 'combine --ignore-blank-lines with --function-context' '
>> -	test_write_lines 1 "" 2 3 4 5 >a &&
>> -	test_write_lines 1    2 3 4   >b &&
>> +	test_write_lines    1 2 3 "" function 1 2 3 4 5 "" 6 7 8 9 >a &&
>> +	test_write_lines "" 1 2 3 "" function 1 2 3 4 5    6 7 8   >b &&
>
> I'm a little mixed on this one. This _is_ a much better test of how the
> two features should be have together. But I think the reason the
> original was so short was that it was added when fixing a bug where we'd
> iterate off the beginning of list of lines, which now no longer happens.

That fix, b777f3fd61 (xdiff: clamp function context indices in post-image,
2019-07-23), should no longer be necessary, but I didn't check that
thoroughly.  Since we still have it (and I don't intend to remove it,
better keep that extra safety), it makes sense to keep the specific test.

> Maybe we should cover both cases in two separate tests?

That's easy enough to do.  The hardest part is coming up with a name, but
simply counting up should do the trick here.

> I'd also suggest using "a b c" for the first three lines to avoid
> confusion (I don't think it's important that they're the same as the
> lines inside the "function").

Good point.  That turns the last line into a function line, though, which
is unnecessary and confused me a bit, but I think it's a net win.

René

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2] t4015: improve coverage of function context test
  2019-12-18 18:05 [PATCH RESEND] t4015: improve coverage of function context test René Scharfe
  2019-12-18 20:12 ` Jeff King
@ 2019-12-19 17:35 ` René Scharfe
  2019-12-19 17:51   ` Jeff King
  1 sibling, 1 reply; 5+ messages in thread
From: René Scharfe @ 2019-12-19 17:35 UTC (permalink / raw)
  To: Git Mailing List; +Cc: Jeff King, Junio C Hamano, Derrick Stolee, Eric Sunshine

Add a test that includes an actual function line in the test file to
check if context is expanded to include the whole function, and add an
ignored change before function context to check if that one stays hidden
while the originally ignored change within function context is shown.

Helped-by: Jeff King <peff@peff.net>
Signed-off-by: René Scharfe <l.s.r@web.de>
---
Changes:
* Keep existing test intact, add a new one instead.
* Use unique content for the part before the function context to make
  clear that it's independent.

 t/t4015-diff-whitespace.sh | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/t/t4015-diff-whitespace.sh b/t/t4015-diff-whitespace.sh
index 65615e2fa9..88d3026894 100755
--- a/t/t4015-diff-whitespace.sh
+++ b/t/t4015-diff-whitespace.sh
@@ -2068,4 +2068,27 @@ test_expect_success 'combine --ignore-blank-lines with --function-context' '
 	test_cmp expect actual
 '

+test_expect_success 'combine --ignore-blank-lines with --function-context 2' '
+	test_write_lines    a b c "" function 1 2 3 4 5 "" 6 7 8 9 >a &&
+	test_write_lines "" a b c "" function 1 2 3 4 5    6 7 8   >b &&
+	test_must_fail git diff --no-index \
+		--ignore-blank-lines --function-context a b >actual.raw &&
+	sed -n "/@@/,\$p" <actual.raw >actual &&
+	cat <<-\EOF >expect &&
+	@@ -5,11 +6,9 @@ c
+	 function
+	 1
+	 2
+	 3
+	 4
+	 5
+	-
+	 6
+	 7
+	 8
+	-9
+	EOF
+	test_cmp expect actual
+'
+
 test_done
--
2.24.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] t4015: improve coverage of function context test
  2019-12-19 17:35 ` [PATCH v2] " René Scharfe
@ 2019-12-19 17:51   ` Jeff King
  0 siblings, 0 replies; 5+ messages in thread
From: Jeff King @ 2019-12-19 17:51 UTC (permalink / raw)
  To: René Scharfe
  Cc: Git Mailing List, Junio C Hamano, Derrick Stolee, Eric Sunshine

On Thu, Dec 19, 2019 at 06:35:43PM +0100, René Scharfe wrote:

> Add a test that includes an actual function line in the test file to
> check if context is expanded to include the whole function, and add an
> ignored change before function context to check if that one stays hidden
> while the originally ignored change within function context is shown.
> 
> Helped-by: Jeff King <peff@peff.net>
> Signed-off-by: René Scharfe <l.s.r@web.de>

Thanks, the patch looks good.

Maybe worth noting in the commit message why there are two tests.
Something like:

  This differs from the existing test, which is concerned with the case
  where there is no function line at all in the file (and we might look
  past the beginning of the file).

-Peff

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-12-19 17:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-18 18:05 [PATCH RESEND] t4015: improve coverage of function context test René Scharfe
2019-12-18 20:12 ` Jeff King
2019-12-19 17:35   ` René Scharfe
2019-12-19 17:35 ` [PATCH v2] " René Scharfe
2019-12-19 17:51   ` Jeff King

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).