Subject: Re: [PATCH v1 2/2] git-p4: suppress non test relevant output

From: Luke Diamand <[email-masked]>
Date: Thu, 24 Dec 2015 11:09:35 +0000

On 22/12/15 08:47, Lars Schneider wrote:
>
> On 21 Dec 2015, at 21:38, Junio C Hamano <[email-masked]> wrote:
>

>>
>> If so, why not do it there instead?  You seem to run only "kill" to
>> send some signal to a process using this helper function, and it
>> would be silent on its standard output stream (even though it may
>> say "no such process" etc. on its standard error), so it is not
>> clear to me what you are doing with this change here...
>
> If I run git-p4 tests in verbose mode (e.g. "./t9823-git-p4-mock-lfs.sh -v") without this patch then the last lines of the output look like this:
>
>>>> Output Start >>>
> expecting success:
> 	kill_p4d
>
> ./lib-git-p4.sh: line 172: 26289 Killed: 9               while true; do
>      if test $(time_in_seconds) -gt $timeout; then
>          kill -9 $pid; exit 1;
>      fi; sleep 1;
> done
> ok 8 - kill p4d
>
> # passed all 8 test(s)
> 1..8
> <<< Output end <<<
>
> However, I want them to look like this:
>
>>>> Output Start >>>
> expecting success:
> 	kill_p4d
>
> ok 8 - kill p4d
>
> # passed all 8 test(s)
> 1..8
> <<< Output end <<<
>
> This is achieved with the patch. I am no shell expert ... is there a nicer way to achieve the same?

I get your desired output with the unmodified code from origin/next:

$ ./t9823-git-p4-mock-lfs.sh -v
expecting success:
	kill_p4d

ok 8 - kill p4d

# passed all 8 test(s)
1..8

But that's because my shell is symlinked to /bin/dash. I suspect you are 
using bash - when I run this with bash I get your command output. 
Possibly a bash bug?

As Junio says, it seems a bit weird that we have to redirect the stderr 
of that entire expression.

Luke