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

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

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

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:48:06

Junio C Hamano [off-list ref] writes:
Tay Ray Chuan [off-list ref] writes:
quoted
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 [off-list ref]

instead.

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

From: Tay Ray Chuan <hidden>
Date: 2016-06-15 22:48:06

Hi,

On Tue, Jan 26, 2010 at 1:52 AM, Junio C Hamano [off-list ref] wrote:
Junio C Hamano [off-list ref] writes:
quoted
Tay Ray Chuan [off-list ref] writes:
quoted
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'")...
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 [off-list ref]

instead.
No problem.

-- 
Cheers,
Ray Chuan

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

From: Tay Ray Chuan <hidden>
Date: 2016-06-15 22:48:06

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 <redacted>
---
 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.1.436.gaba7d
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help