threads / patch / 22382

patcht5541-http-push: make grep expression check for one line only

Subject: [PATCH] t5541-http-push: make grep expression check for one line only

## tl;dr

5 messages between Jan 25, 2010 and Jan 26, 2010. Diffs are folded; open one to read it.

replies: 4people: 2as markdown or json

Tay Ray Chuan· Jan 25, 2010, 07:42 UTC · lore

Simplify the grep expressions in the non-fast-forward tests to check only for the first line of the non-fast-forward warning - having that line should be enough assurance that the full warning is printed.

In the first place, grep can't deal with expressions for multiple lines.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
---
 t/t5541-http-push.sh |   12 ++++--------
 1 files changed, 4 insertions(+), 8 deletions(-)
Show changes to t/t5541-http-push.sh +4 −8
diff --git a/t/t5541-http-push.sh b/t/t5541-http-push.sh
index 83a8e14..53f54a2 100755
--- a/t/t5541-http-push.sh
+++ b/t/t5541-http-push.sh
@@ -105,10 +105,8 @@ test_expect_success 'non-fast-forward push show ref status' '
 '
 
 test_expect_success 'non-fast-forward push shows help message' '
-	grep \
-"To prevent you from losing history, non-fast-forward updates were rejected
-Merge the remote changes before pushing again.  See the '"'non-fast-forward'"'
-section of '"'git push --help'"' for details." output
+	grep "To prevent you from losing history, non-fast-forward updates were rejected" \
+		output
 '
 
 test_expect_success 'push fails for non-fast-forward refs unmatched by remote helper' '
@@ -126,10 +124,8 @@ test_expect_success 'push fails for non-fast-forward refs unmatched by remote he
 	grep "^ + [a-f0-9]*\.\.\.[a-f0-9]* *master -> master (forced update)$" output &&
 	grep "^ ! \[rejected\] *master -> retsam (non-fast-forward)$" output &&
 
-	grep \
-"To prevent you from losing history, non-fast-forward updates were rejected
-Merge the remote changes before pushing again.  See the '"'non-fast-forward'"'
-section of '"'git push --help'"' for details." output
+	grep "To prevent you from losing history, non-fast-forward updates were rejected" \
+		output
 '
 
 stop_httpd
-- 
1.6.6
Junio C Hamano· Jan 25, 2010, 17:47 UTC · re: Tay Ray Chuan · lore

Re: [PATCH] t5541-http-push: make grep expression check for one line only

Tay Ray Chuan <rctay89@gmail.com> writes:
Show 6 quoted lines
> Simplify the grep expressions in the non-fast-forward tests to check
> only for the first line of the non-fast-forward warning - having that
> line should be enough assurance that the full warning is printed.
>
> In the first place, grep can't deal with expressions for multiple
> lines.

This shows that nobody has ever run this test since January 8th, not even the original author?

Hmmm.
Thanks.
Show 38 quoted lines
>
> Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
> ---
>  t/t5541-http-push.sh |   12 ++++--------
>  1 files changed, 4 insertions(+), 8 deletions(-)
>
> diff --git a/t/t5541-http-push.sh b/t/t5541-http-push.sh
> index 83a8e14..53f54a2 100755
> --- a/t/t5541-http-push.sh
> +++ b/t/t5541-http-push.sh
> @@ -105,10 +105,8 @@ test_expect_success 'non-fast-forward push show ref status' '
>  '
>  
>  test_expect_success 'non-fast-forward push shows help message' '
> -	grep \
> -"To prevent you from losing history, non-fast-forward updates were rejected
> -Merge the remote changes before pushing again.  See the '"'non-fast-forward'"'
> -section of '"'git push --help'"' for details." output
> +	grep "To prevent you from losing history, non-fast-forward updates were rejected" \
> +		output
>  '
>  
>  test_expect_success 'push fails for non-fast-forward refs unmatched by remote helper' '
> @@ -126,10 +124,8 @@ test_expect_success 'push fails for non-fast-forward refs unmatched by remote he
>  	grep "^ + [a-f0-9]*\.\.\.[a-f0-9]* *master -> master (forced update)$" output &&
>  	grep "^ ! \[rejected\] *master -> retsam (non-fast-forward)$" output &&
>  
> -	grep \
> -"To prevent you from losing history, non-fast-forward updates were rejected
> -Merge the remote changes before pushing again.  See the '"'non-fast-forward'"'
> -section of '"'git push --help'"' for details." output
> +	grep "To prevent you from losing history, non-fast-forward updates were rejected" \
> +		output
>  '
>  
>  stop_httpd
> -- 
> 1.6.6
Junio C Hamano· Jan 25, 2010, 17:52 UTC · re: Junio C Hamano · lore

Re: [PATCH] t5541-http-push: make grep expression check for one line only

Junio C Hamano <gitster@pobox.com> writes:
Show 13 quoted lines
> Tay Ray Chuan <rctay89@gmail.com> writes:
>
>> Simplify the grep expressions in the non-fast-forward tests to check
>> only for the first line of the non-fast-forward warning - having that
>> line should be enough assurance that the full warning is printed.
>>
>> In the first place, grep can't deal with expressions for multiple
>> lines.
>
> This shows that nobody has ever run this test since January 8th, not even
> the original author?
>
> Hmmm.

Actually, if you grep with a pattern with multiple lines, it is equivalent to giving each of these lines as a separate pattern from the command line. So it is understandable that the tests passed. They were checking if these match, but it doesn't check (and grep is not designed to) if the first pattern matched the first line, the second to second, etc.

So I'd say something like...
    Don't feed multiple-line pattern to grep and expect them to match with
    lines in order.
    Simplify the grep expressions in the non-fast-forward tests to check
    only for the first line of the non-fast-forward warning - having that
    line should be enough assurance that the full warning is printed.
    Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
instead.
Tay Ray Chuan· Jan 26, 2010, 01:33 UTC · re: Junio C Hamano · lore

Re: [PATCH] t5541-http-push: make grep expression check for one line only

Hi,
On Tue, Jan 26, 2010 at 1:52 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 21 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
>
>> Tay Ray Chuan <rctay89@gmail.com> writes:
>>
>>> Simplify the grep expressions in the non-fast-forward tests to check
>>> only for the first line of the non-fast-forward warning - having that
>>> line should be enough assurance that the full warning is printed.
>>>
>>> In the first place, grep can't deal with expressions for multiple
>>> lines.
>>
>> This shows that nobody has ever run this test since January 8th, not even
>> the original author?
>>
>> Hmmm.
>
> Actually, if you grep with a pattern with multiple lines, it is equivalent
> to giving each of these lines as a separate pattern from the command line.
> So it is understandable that the tests passed.  They were checking if
> these match, but it doesn't check (and grep is not designed to) if the
> first pattern matched the first line, the second to second, etc.

that was why the tests passed then and passed now - I just happened to run them, and I noticed grep reported success, yet only matched 2 of the 3 lines. Then I remembered recently there had been a rewording of the fast-forward warning was reworded (c0eb604 "push: spell 'Note about fast-forwards'")...

Show 12 quoted lines
> So I'd say something like...
>
>    Don't feed multiple-line pattern to grep and expect them to match with
>    lines in order.
>
>    Simplify the grep expressions in the non-fast-forward tests to check
>    only for the first line of the non-fast-forward warning - having that
>    line should be enough assurance that the full warning is printed.
>
>    Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
>
> instead.
No problem.
-- 
Cheers,
Ray Chuan
Tay Ray Chuan· Jan 26, 2010, 01:37 UTC · re: Tay Ray Chuan · lore

Don't feed multiple-line pattern to grep and expect them to match with lines in order.

Simplify the grep expressions in the non-fast-forward tests to check only for the first line of the non-fast-forward warning - having that line should be enough assurance that the full warning is printed.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
---
 t/t5541-http-push.sh |   12 ++++--------
 1 files changed, 4 insertions(+), 8 deletions(-)
Show changes to t/t5541-http-push.sh +4 −8
diff --git a/t/t5541-http-push.sh b/t/t5541-http-push.sh
index 83a8e14..53f54a2 100755
--- a/t/t5541-http-push.sh
+++ b/t/t5541-http-push.sh
@@ -105,10 +105,8 @@ test_expect_success 'non-fast-forward push show ref status' '
 '
 
 test_expect_success 'non-fast-forward push shows help message' '
-	grep \
-"To prevent you from losing history, non-fast-forward updates were rejected
-Merge the remote changes before pushing again.  See the '"'non-fast-forward'"'
-section of '"'git push --help'"' for details." output
+	grep "To prevent you from losing history, non-fast-forward updates were rejected" \
+		output
 '
 
 test_expect_success 'push fails for non-fast-forward refs unmatched by remote helper' '
@@ -126,10 +124,8 @@ test_expect_success 'push fails for non-fast-forward refs unmatched by remote he
 	grep "^ + [a-f0-9]*\.\.\.[a-f0-9]* *master -> master (forced update)$" output &&
 	grep "^ ! \[rejected\] *master -> retsam (non-fast-forward)$" output &&
 
-	grep \
-"To prevent you from losing history, non-fast-forward updates were rejected
-Merge the remote changes before pushing again.  See the '"'non-fast-forward'"'
-section of '"'git push --help'"' for details." output
+	grep "To prevent you from losing history, non-fast-forward updates were rejected" \
+		output
 '
 
 stop_httpd
-- 
1.6.6.1.436.gaba7d

← back to recent threads