From: Junio C Hamano <gitster@pobox.com>
To: Gatla Vishweshwar Reddy <gatlavishweshwarreddy26@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] t1410-reflog.sh: avoid suppressing git's exit code in pipelines
Date: Mon, 06 Jul 2026 19:16:09 -0700 [thread overview]
Message-ID: <xmqqechf8ryu.fsf@gitster.g> (raw)
In-Reply-To: <20260706205036.3453-1-gatlavishweshwarreddy26@gmail.com> (Gatla Vishweshwar Reddy's message of "Tue, 7 Jul 2026 02:20:36 +0530")
Gatla Vishweshwar Reddy <gatlavishweshwarreddy26@gmail.com> writes:
> Piping git commands directly to wc -l suppresses the exit code of
> git, hiding potential failures from the test suite. Capture the
> output to a temporary file first, then count the lines separately
> to preserve the exit code.
>
> Signed-off-by: Gatla Vishweshwar Reddy <gatlavishweshwarreddy26@gmail.com>
> ---
> t/t1410-reflog.sh | 29 +++++++++++++++++++++--------
> 1 file changed, 21 insertions(+), 8 deletions(-)
>
> diff --git a/t/t1410-reflog.sh b/t/t1410-reflog.sh
> index ce71f9a30a..397f94b039 100755
> --- a/t/t1410-reflog.sh
> +++ b/t/t1410-reflog.sh
> @@ -244,8 +244,10 @@ 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) &&
> + git reflog >reflog_output &&
> + HEAD_entry_count=$(wc -l <reflog_output) &&
> + git reflog show main >reflog_main_output &&
> + main_entry_count=$(wc -l <reflog_main_output) &&
>
> test $HEAD_entry_count = 5 &&
> test $main_entry_count = 5 &&
If you _know_ output from certain command must be 5 lines, would it
make more sense to use test_stdout_line_count, perhaps like
test_stdout_line_count = 5 git reflog
or something?
> @@ -254,16 +256,23 @@ test_expect_success 'delete' '
> git reflog delete main@{1} &&
> git reflog show main > output &&
> test_line_count = $(($main_entry_count - 1)) output &&
> - test $HEAD_entry_count = $(git reflog | wc -l) &&
> + git reflog >reflog_output &&
> + test $HEAD_entry_count = $(wc -l <reflog_output) &&
> ! 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) &&
> + git reflog >reflog_output &&
> + test $(($HEAD_entry_count -1)) = $(wc -l <reflog_output) &&
> + git reflog show main >reflog_main_output &&
> + test $main_entry_count = $(wc -l <reflog_main_output) &&
> +
> +
> + git reflog >reflog_output &&
> + HEAD_entry_count=$(wc -l <reflog_output) &&
> +
>
> - HEAD_entry_count=$(git reflog | wc -l) &&
>
> git reflog delete main@{07.04.2005.15:15:00.-0700} &&
Can you explain the addition of these consecutive blank lines? The
same question applies to the blank lines at the end of the test in
the next hunk. I ask because formatting issues like this often
resemble unedited AI-generated code that hasn't been properly
cleaned up before submission.
> git reflog show main > output &&
> @@ -321,11 +330,15 @@ 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 &&
> + git reflog main >reflog_output &&
> + test $(wc -l <reflog_output) = 4 &&
> git branch foo &&
> git pack-refs --all &&
> git checkout foo &&
> - test $(git reflog main | wc -l) = 4
> + git reflog main >reflog_output &&
> + test $(wc -l <reflog_output) = 4
> +
> +
> '
>
> test_expect_success 'stale dirs do not cause d/f conflicts (reflogs on)' '
next prev parent reply other threads:[~2026-07-07 2:16 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-06 20:50 [PATCH] t1410-reflog.sh: avoid suppressing git's exit code in pipelines Gatla Vishweshwar Reddy
2026-07-07 2:16 ` Junio C Hamano [this message]
2026-07-07 13:55 ` [PATCH v2] " Gatla Vishweshwar Reddy
2026-07-08 1:48 ` Junio C Hamano
2026-07-08 9:20 ` [PATCH v3] " Gatla Vishweshwar Reddy
2026-07-08 20:41 ` Junio C Hamano
2026-07-09 5:09 ` [PATCH v4] " Gatla Vishweshwar Reddy
2026-07-09 16:38 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqechf8ryu.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=gatlavishweshwarreddy26@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox