Re: [PATCH] tests: drop use of 'tee' that hides exit status

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Junio,

On Thu, 8 Aug 2024, Junio C Hamano wrote:

> diff --git c/t/t1001-read-tree-m-2way.sh w/t/t1001-read-tree-m-2way.sh
> index 88c524f655..48a1550371 100755
> --- c/t/t1001-read-tree-m-2way.sh
> +++ w/t/t1001-read-tree-m-2way.sh
> @@ -397,7 +397,7 @@ test_expect_success 'a/b vs a, plus c/d case setup.' '
>
>  test_expect_success 'a/b vs a, plus c/d case test.' '
>  	read_tree_u_must_succeed -u -m "$treeH" "$treeM" &&
> -	git ls-files --stage | tee >treeMcheck.out &&
> +	git ls-files --stage >treeMcheck.out &&

While this obviously fixes the bug where the test case was incorrectly
allowed to continue after a failing `git ls-files --stage` call, I will
note that I interpret the intention of the `| tee` as showing the output
in the logs in addition to redirecting it to a file for the benefit of
additional checks in the same test case.

I know that I investigate CI failures a lot more than most, therefore many
might disagree that removing such output makes future debugging
potentially a lot harder.

So, what to do here? I don't really know. The easiest option that most
other people would likely be happy with would be to go with the `| tee`
dropping.

A more complex solution (and hence inherently more fragile, which I would
love to avoid) would be to introduce a helper function that redirects the
output but makes sure that it is shown even in case of a failure.
Something like this:

	redirect_and_show () {
		local file="$1"
		shift

		"$@" >"$file"
		local ret=$?

		cat "$file"
		return $ret
	}

As I said, I loathe the complexity of this construct. Hopefully the switch
to the more powerful unit testing framework will make these sort of
considerations moot at some point.

Ciao,
Johannes





[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux