diff mbox series

[3/3] t6421: fix test to work when repo dir contains d0

Message ID 6c08b8ceb2b87671a3e57c09e4e45170eaac37fc.1722571853.git.gitgitgadget@gmail.com (mailing list archive)
State Superseded
Headers show
Series Small fixes for issues detected during internal CI runs | expand

Commit Message

Kyle Lippincott Aug. 2, 2024, 4:10 a.m. UTC
From: Kyle Lippincott <spectral@google.com>

The `grep` statement in this test looks for `d0.*<string>`, attempting
to filter to only show lines that had tabular output where the 2nd
column had `d0` and the final column had a substring of
[`git -c `]`fetch.negotiationAlgorithm`. These lines also have
`child_start` in the 4th column, but this isn't part of the condition.

A subsequent line will have `d1` in the 2nd column, `start` in the 4th
column, and `/path/to/git/git -c fetch.negotiationAlgorihm` in the final
column. If `/path/to/git/git` contains the substring `d0`, then this
line is included by `grep` as well as the desired line, leading to an
effective doubling of the number of lines, and test failures.

Tighten the grep expression to require `d0` to be surrounded by spaces,
and to have the `child_start` label.

Signed-off-by: Kyle Lippincott <spectral@google.com>
---
 t/t6421-merge-partial-clone.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Junio C Hamano Aug. 2, 2024, 3:13 p.m. UTC | #1
"Kyle Lippincott via GitGitGadget" <gitgitgadget@gmail.com> writes:

> From: Kyle Lippincott <spectral@google.com>
>
> The `grep` statement in this test looks for `d0.*<string>`, attempting
> to filter to only show lines that had tabular output where the 2nd
> column had `d0` and the final column had a substring of
> [`git -c `]`fetch.negotiationAlgorithm`. These lines also have
> `child_start` in the 4th column, but this isn't part of the condition.
>
> A subsequent line will have `d1` in the 2nd column, `start` in the 4th
> column, and `/path/to/git/git -c fetch.negotiationAlgorihm` in the final
> column. If `/path/to/git/git` contains the substring `d0`, then this
> line is included by `grep` as well as the desired line, leading to an
> effective doubling of the number of lines, and test failures.
>
> Tighten the grep expression to require `d0` to be surrounded by spaces,
> and to have the `child_start` label.

Makes sense.

Updating the comment with expected shape of the output might make it
even less likely that we'd break these fixes again by mistake.

Thanks.

> Signed-off-by: Kyle Lippincott <spectral@google.com>
> ---
>  t/t6421-merge-partial-clone.sh | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/t/t6421-merge-partial-clone.sh b/t/t6421-merge-partial-clone.sh
> index 711b709e755..0f312ac93dc 100755
> --- a/t/t6421-merge-partial-clone.sh
> +++ b/t/t6421-merge-partial-clone.sh
> @@ -231,7 +231,7 @@ test_expect_merge_algorithm failure success 'Objects downloaded for single relev
>  		test_cmp expect actual &&
>  
>  		# Check the number of fetch commands exec-ed
> -		grep d0.*fetch.negotiationAlgorithm trace.output >fetches &&
> +		grep " d0 .* child_start .*fetch.negotiationAlgorithm" trace.output >fetches &&
>  		test_line_count = 2 fetches &&
>  
>  		git rev-list --objects --all --missing=print |
> @@ -319,7 +319,7 @@ test_expect_merge_algorithm failure success 'Objects downloaded when a directory
>  		test_cmp expect actual &&
>  
>  		# Check the number of fetch commands exec-ed
> -		grep d0.*fetch.negotiationAlgorithm trace.output >fetches &&
> +		grep " d0 .* child_start .*fetch.negotiationAlgorithm" trace.output >fetches &&
>  		test_line_count = 1 fetches &&
>  
>  		git rev-list --objects --all --missing=print |
> @@ -423,7 +423,7 @@ test_expect_merge_algorithm failure success 'Objects downloaded with lots of ren
>  		test_cmp expect actual &&
>  
>  		# Check the number of fetch commands exec-ed
> -		grep d0.*fetch.negotiationAlgorithm trace.output >fetches &&
> +		grep " d0 .* child_start .*fetch.negotiationAlgorithm" trace.output >fetches &&
>  		test_line_count = 4 fetches &&
>  
>  		git rev-list --objects --all --missing=print |
diff mbox series

Patch

diff --git a/t/t6421-merge-partial-clone.sh b/t/t6421-merge-partial-clone.sh
index 711b709e755..0f312ac93dc 100755
--- a/t/t6421-merge-partial-clone.sh
+++ b/t/t6421-merge-partial-clone.sh
@@ -231,7 +231,7 @@  test_expect_merge_algorithm failure success 'Objects downloaded for single relev
 		test_cmp expect actual &&
 
 		# Check the number of fetch commands exec-ed
-		grep d0.*fetch.negotiationAlgorithm trace.output >fetches &&
+		grep " d0 .* child_start .*fetch.negotiationAlgorithm" trace.output >fetches &&
 		test_line_count = 2 fetches &&
 
 		git rev-list --objects --all --missing=print |
@@ -319,7 +319,7 @@  test_expect_merge_algorithm failure success 'Objects downloaded when a directory
 		test_cmp expect actual &&
 
 		# Check the number of fetch commands exec-ed
-		grep d0.*fetch.negotiationAlgorithm trace.output >fetches &&
+		grep " d0 .* child_start .*fetch.negotiationAlgorithm" trace.output >fetches &&
 		test_line_count = 1 fetches &&
 
 		git rev-list --objects --all --missing=print |
@@ -423,7 +423,7 @@  test_expect_merge_algorithm failure success 'Objects downloaded with lots of ren
 		test_cmp expect actual &&
 
 		# Check the number of fetch commands exec-ed
-		grep d0.*fetch.negotiationAlgorithm trace.output >fetches &&
+		grep " d0 .* child_start .*fetch.negotiationAlgorithm" trace.output >fetches &&
 		test_line_count = 4 fetches &&
 
 		git rev-list --objects --all --missing=print |