diff mbox series

[GSoC,1/1] t9811: avoid using pipes

Message ID 20250405103718.25160-1-anthonywang03@icloud.com (mailing list archive)
State New
Headers show
Series [GSoC,1/1] t9811: avoid using pipes | expand

Commit Message

Anthony Wang April 5, 2025, 10:37 a.m. UTC
The exit code of the upstream in a pipe is suppressed thus we lose any
exit codes of git commands that are piped. In order to ensure we
pick up the exit code, we can write the output of the git command to
a file, testing the exit codes of both the commands.

Signed-off-by: Anthony Wang <anthonywang513@gmail.com>
---
 t/t9811-git-p4-label-import.sh | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

Comments

Patrick Steinhardt April 7, 2025, 7:51 a.m. UTC | #1
On Sat, Apr 05, 2025 at 12:37:18PM +0200, Anthony Wang wrote:
> diff --git a/t/t9811-git-p4-label-import.sh b/t/t9811-git-p4-label-import.sh
> index 5ac5383fb7..5abac938d0 100755
> --- a/t/t9811-git-p4-label-import.sh
> +++ b/t/t9811-git-p4-label-import.sh
> @@ -95,9 +95,10 @@ test_expect_success 'two labels on the same changelist' '
>  		cd "$git" &&
>  		git p4 sync --import-labels &&
>  
> -		git tag | grep TAG_F1 &&
> -		git tag | grep -q TAG_F1_1 &&
> -		git tag | grep -q TAG_F1_2 &&
> +		git tag >output &&
> +		grep TAG_F1 output &&
> +		grep -q TAG_F1_1 output &&
> +		grep -q TAG_F1_2 output &&
>  
>  		cd main &&
>  

I was a bit puzzled why we use `grep` for the first invocation, but
`grep -q` for the other ones. It made me double check that there is no
surrounding shell that expects to read the output generated by that
line, but as far as I can see that is not the case. We might want to
drop them to avoid such confusion (and explain in the commit message why
we want to drop it).

While at it, you can also adapt all adapted calls of `grep` to instead
use `test_grep`. The benefit of that function is that it will provide
helpful debug output in case the test ever was to fail by printing
contents of the non-matching file.

Other than that the patch looks good to me, thanks!

Patrick
diff mbox series

Patch

diff --git a/t/t9811-git-p4-label-import.sh b/t/t9811-git-p4-label-import.sh
index 5ac5383fb7..5abac938d0 100755
--- a/t/t9811-git-p4-label-import.sh
+++ b/t/t9811-git-p4-label-import.sh
@@ -95,9 +95,10 @@  test_expect_success 'two labels on the same changelist' '
 		cd "$git" &&
 		git p4 sync --import-labels &&
 
-		git tag | grep TAG_F1 &&
-		git tag | grep -q TAG_F1_1 &&
-		git tag | grep -q TAG_F1_2 &&
+		git tag >output &&
+		grep TAG_F1 output &&
+		grep -q TAG_F1_1 output &&
+		grep -q TAG_F1_2 output &&
 
 		cd main &&
 
@@ -208,7 +209,8 @@  test_expect_success 'use git config to enable import/export of tags' '
 		git p4 rebase --verbose &&
 		git p4 submit --verbose &&
 		git tag &&
-		git tag | grep TAG_F1_1
+		git tag >output &&
+		grep TAG_F1_1 output
 	) &&
 	(
 		cd "$cli" &&