Re: [PATCH v4] t1410-reflog.sh: avoid suppressing git's exit code in pipelines
Gatla Vishweshwar Reddy <gatlavishweshwarreddy26@gmail.com> writes:
Show 12 quoted lines
> Piping git commands directly to wc -l suppresses the exit code of
> git, hiding potential failures from the test suite. Use
> test_stdout_line_count instead, which handles exit code preservation
> internally while keeping the test logic clean and readable.
>
> Signed-off-by: Gatla Vishweshwar Reddy <gatlavishweshwarreddy26@gmail.com>
> ---
>
> Changes in v4:
> - Restored blank line between test_expect_success blocks that was
> accidentally removed in v2
> - Updated commit message to accurately describe the solution
This version looks good to me.
Will queue and mark the topic for 'next'.
Thanks.
Show 62 quoted lines
>
> Thank you for the detailed review!
>
> t/t1410-reflog.sh | 26 +++++++++-----------------
> 1 file changed, 9 insertions(+), 17 deletions(-)
>
> diff --git a/t/t1410-reflog.sh b/t/t1410-reflog.sh
> index ce71f9a30a..5a40a62ba2 100755
> --- a/t/t1410-reflog.sh
> +++ b/t/t1410-reflog.sh
> @@ -244,30 +244,22 @@ test_expect_success 'delete' '
> test_tick &&
> git commit -m tiger C &&
>
> - HEAD_entry_count=$(git reflog | wc -l) &&
> - main_entry_count=$(git reflog show main | wc -l) &&
> -
> - test $HEAD_entry_count = 5 &&
> - test $main_entry_count = 5 &&
> -
> + test_stdout_line_count = 5 git reflog &&
> + test_stdout_line_count = 5 git reflog show main &&
>
> git reflog delete main@{1} &&
> + test_stdout_line_count = 4 git reflog show main &&
> + test_stdout_line_count = 5 git reflog &&
> git reflog show main > output &&
> - test_line_count = $(($main_entry_count - 1)) output &&
> - test $HEAD_entry_count = $(git reflog | wc -l) &&
> ! grep ox < output &&
>
> - main_entry_count=$(wc -l < output) &&
> -
> git reflog delete HEAD@{1} &&
> - test $(($HEAD_entry_count -1)) = $(git reflog | wc -l) &&
> - test $main_entry_count = $(git reflog show main | wc -l) &&
> -
> - HEAD_entry_count=$(git reflog | wc -l) &&
> + test_stdout_line_count = 4 git reflog &&
> + test_stdout_line_count = 4 git reflog show main &&
>
> git reflog delete main@{07.04.2005.15:15:00.-0700} &&
> + test_stdout_line_count = 3 git reflog show main &&
> git reflog show main > output &&
> - test_line_count = $(($main_entry_count - 1)) output &&
> ! grep dragon < output
>
> '
> @@ -321,11 +313,11 @@ test_expect_success 'git reflog expire unknown reference' '
> '
>
> test_expect_success 'checkout should not delete log for packed ref' '
> - test $(git reflog main | wc -l) = 4 &&
> + test_stdout_line_count = 4 git reflog main &&
> git branch foo &&
> git pack-refs --all &&
> git checkout foo &&
> - test $(git reflog main | wc -l) = 4
> + test_stdout_line_count = 4 git reflog main
> '
>
> test_expect_success 'stale dirs do not cause d/f conflicts (reflogs on)' '