In test_atom(), we're piping the output of cat-file to tail(1), thus, losing its exit status. Let's use a temporary file to preserve git exit status code. Signed-off-by: Đoàn Trần Công Danh <congdanhqx@xxxxxxxxx> --- Junio wrote: > It is not wrong per-se, but do we need a redirect '<' here? "tail" > takes filename(s) on the command line, but is there a reason to feed > the contents from the standard input? Well, no reason. In v1, I replaced the left hand side of pipe with <out, then in v2, I moved it to the end of command. Changed to not use shell redirection. t/t6300-for-each-ref.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/t/t6300-for-each-ref.sh b/t/t6300-for-each-ref.sh index 93126341b3..80679d5e12 100755 --- a/t/t6300-for-each-ref.sh +++ b/t/t6300-for-each-ref.sh @@ -66,7 +66,9 @@ test_atom() { case $type in tag) # We cannot use $3 as it expects sanitize_pgp to run - expect=$(git cat-file tag $ref | tail -n +6 | wc -c) ;; + git cat-file tag $ref >out && + expect=$(tail -n +6 out | wc -c) && + rm -f out ;; tree | blob) expect="" ;; commit) -- 2.33.0.254.g68ee769121