# [PATCH] t4014: strengthen search patterns

2 messages from 2017-09-19 to 2017-09-20. Participants: Kaartic Sivaraam, Junio C Hamano.
Thread: https://gitlist.dev/t/46787

## Kaartic Sivaraam, 2017-09-19 12:46

Subject: [PATCH] t4014: strengthen search patterns
Message-ID: <0102015e9a2d5d25-e34b7c98-1662-4cfe-9eb8-50dc56c36240-000000@eu-west-1.amazonses.com>
URL: https://gitlist.dev/e/0102015e9a2d5d25-e34b7c98-1662-4cfe-9eb8-50dc56c36240-000000%40eu-west-1.amazonses.com

```
The regex patterns for some failing test cases were a bit loose
giving way for a few incorrect outputs being accepted as correct
outputs.

To avoid such incorrect outputs from being flagged as correct ones
use fixed string matches when possible and strengthen regex when
it's not.

Signed-off-by: Kaartic Sivaraam <kaarticsivaraam91196@gmail.com>
---
 t/t4014-format-patch.sh | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
index 482112ca339f0..7dff7996c9e1f 100755
--- a/t/t4014-format-patch.sh
+++ b/t/t4014-format-patch.sh
@@ -163,7 +163,7 @@ test_expect_failure 'additional command line cc (rfc822)' '
 	git config --replace-all format.headers "Cc: R E Cipient <rcipient@example.com>" &&
 	git format-patch --cc="S. E. Cipient <scipient@example.com>" --stdout master..side | sed -e "/^\$/q" >patch5 &&
 	grep "^Cc: R E Cipient <rcipient@example.com>,\$" patch5 &&
-	grep "^ *\"S. E. Cipient\" <scipient@example.com>\$" patch5
+	grep "^ *\"S\. E\. Cipient\" <scipient@example\.com>\$" patch5
 '
 
 test_expect_success 'command line headers' '
@@ -191,13 +191,13 @@ test_expect_success 'command line To: header (ascii)' '
 test_expect_failure 'command line To: header (rfc822)' '
 
 	git format-patch --to="R. E. Cipient <rcipient@example.com>" --stdout master..side | sed -e "/^\$/q" >patch8 &&
-	grep "^To: \"R. E. Cipient\" <rcipient@example.com>\$" patch8
+	grep -F "To: \"R. E. Cipient\" <rcipient@example.com>" patch8
 '
 
 test_expect_failure 'command line To: header (rfc2047)' '
 
 	git format-patch --to="R Ä Cipient <rcipient@example.com>" --stdout master..side | sed -e "/^\$/q" >patch8 &&
-	grep "^To: =?UTF-8?q?R=20=C3=84=20Cipient?= <rcipient@example.com>\$" patch8
+	grep "^To: =?UTF-8?q?R=20=C3=84=20Cipient?= <rcipient@example\.com>\$" patch8
 '
 
 test_expect_success 'configuration To: header (ascii)' '
@@ -211,14 +211,14 @@ test_expect_failure 'configuration To: header (rfc822)' '
 
 	git config format.to "R. E. Cipient <rcipient@example.com>" &&
 	git format-patch --stdout master..side | sed -e "/^\$/q" >patch9 &&
-	grep "^To: \"R. E. Cipient\" <rcipient@example.com>\$" patch9
+	grep -F "To: \"R. E. Cipient\" <rcipient@example.com>" patch9
 '
 
 test_expect_failure 'configuration To: header (rfc2047)' '
 
 	git config format.to "R Ä Cipient <rcipient@example.com>" &&
 	git format-patch --stdout master..side | sed -e "/^\$/q" >patch9 &&
-	grep "^To: =?UTF-8?q?R=20=C3=84=20Cipient?= <rcipient@example.com>\$" patch9
+	grep "^To: =?UTF-8?q?R=20=C3=84=20Cipient?= <rcipient@example\.com>\$" patch9
 '
 
 # check_patch <patch>: Verify that <patch> looks like a half-sane

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

```

## Junio C Hamano, 2017-09-20 02:50

Subject: Re: [PATCH] t4014: strengthen search patterns
Message-ID: <xmqqingeozhc.fsf@gitster.mtv.corp.google.com>
URL: https://gitlist.dev/e/xmqqingeozhc.fsf%40gitster.mtv.corp.google.com
In-Reply-To: <0102015e9a2d5d25-e34b7c98-1662-4cfe-9eb8-50dc56c36240-000000@eu-west-1.amazonses.com>

```
Kaartic Sivaraam <kaarticsivaraam91196@gmail.com> writes:

> The regex patterns for some failing test cases were a bit loose
> giving way for a few incorrect outputs being accepted as correct
> outputs.

If these were part of scripted Porcelain that needs to take any
end-user input, then having '.' that are meant to match only a dot
is a bug, but I personally do not think it is worth the patch noise
to quote them, when we _know_ (after all, we are in control of the
data we use for these tests) there is no other lines that would
match these patterns.



> To avoid such incorrect outputs from being flagged as correct ones
> use fixed string matches when possible and strengthen regex when
> it's not.
>
> Signed-off-by: Kaartic Sivaraam <kaarticsivaraam91196@gmail.com>
> ---
>  t/t4014-format-patch.sh | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
> index 482112ca339f0..7dff7996c9e1f 100755
> --- a/t/t4014-format-patch.sh
> +++ b/t/t4014-format-patch.sh
> @@ -163,7 +163,7 @@ test_expect_failure 'additional command line cc (rfc822)' '
>  	git config --replace-all format.headers "Cc: R E Cipient <rcipient@example.com>" &&
>  	git format-patch --cc="S. E. Cipient <scipient@example.com>" --stdout master..side | sed -e "/^\$/q" >patch5 &&
>  	grep "^Cc: R E Cipient <rcipient@example.com>,\$" patch5 &&
> -	grep "^ *\"S. E. Cipient\" <scipient@example.com>\$" patch5
> +	grep "^ *\"S\. E\. Cipient\" <scipient@example\.com>\$" patch5
>  '
>  
>  test_expect_success 'command line headers' '
> @@ -191,13 +191,13 @@ test_expect_success 'command line To: header (ascii)' '
>  test_expect_failure 'command line To: header (rfc822)' '
>  
>  	git format-patch --to="R. E. Cipient <rcipient@example.com>" --stdout master..side | sed -e "/^\$/q" >patch8 &&
> -	grep "^To: \"R. E. Cipient\" <rcipient@example.com>\$" patch8
> +	grep -F "To: \"R. E. Cipient\" <rcipient@example.com>" patch8
>  '
>  
>  test_expect_failure 'command line To: header (rfc2047)' '
>  
>  	git format-patch --to="R Ä Cipient <rcipient@example.com>" --stdout master..side | sed -e "/^\$/q" >patch8 &&
> -	grep "^To: =?UTF-8?q?R=20=C3=84=20Cipient?= <rcipient@example.com>\$" patch8
> +	grep "^To: =?UTF-8?q?R=20=C3=84=20Cipient?= <rcipient@example\.com>\$" patch8
>  '
>  
>  test_expect_success 'configuration To: header (ascii)' '
> @@ -211,14 +211,14 @@ test_expect_failure 'configuration To: header (rfc822)' '
>  
>  	git config format.to "R. E. Cipient <rcipient@example.com>" &&
>  	git format-patch --stdout master..side | sed -e "/^\$/q" >patch9 &&
> -	grep "^To: \"R. E. Cipient\" <rcipient@example.com>\$" patch9
> +	grep -F "To: \"R. E. Cipient\" <rcipient@example.com>" patch9
>  '
>  
>  test_expect_failure 'configuration To: header (rfc2047)' '
>  
>  	git config format.to "R Ä Cipient <rcipient@example.com>" &&
>  	git format-patch --stdout master..side | sed -e "/^\$/q" >patch9 &&
> -	grep "^To: =?UTF-8?q?R=20=C3=84=20Cipient?= <rcipient@example.com>\$" patch9
> +	grep "^To: =?UTF-8?q?R=20=C3=84=20Cipient?= <rcipient@example\.com>\$" patch9
>  '
>  
>  # check_patch <patch>: Verify that <patch> looks like a half-sane
>
> --
> https://github.com/git/git/pull/406

```
