From: Luke Diamand Date: Thu, 24 Dec 2015 11:09:35 GMT Subject: Re: [PATCH v1 2/2] git-p4: suppress non test relevant output Message-ID: <567BD26F.3020006@diamand.org> In-Reply-To: <0185CA76-DDEE-4E7F-8EFF-65E80720E0AF@gmail.com> On 22/12/15 08:47, Lars Schneider wrote: > > On 21 Dec 2015, at 21:38, Junio C Hamano 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