[PATCH v4] t1410-reflog.sh: avoid suppressing git's exit code in pipelines
- From
- Gatla Vishweshwar Reddy <gatlavishweshwarreddy26@gmail.com>
- Date
- Jul 9, 2026, 05:09 UTC
- Message-ID
- <20260709051229.40363-1-gatlavishweshwarreddy26@gmail.com>
- In-Reply-To
- <xmqqv7aprz8a.fsf@gitster.g>
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
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)' ' -- 2.54.0