Re: [PATCH] t2027: avoid using pipes
- From
Christian Couder <christian.couder@gmail.com>
- Date
- Mar 9, 2017, 08:08 UTC
- Message-ID
- <CAP8UFD0GtRdjCMcbhjgA0rVaAMFtyto8JxfqbivODarBB0eK8w@mail.gmail.com>
- In-Reply-To
- <0102015aae7b8536-00c57d0a-1d48-4153-a202-87c4ea9e0e19-000000@eu-west-1.amazonses.com>
On Wed, Mar 8, 2017 at 4:13 PM, Prathamesh Chavan <pc44800@gmail.com> wrote:
> The exit code of the upstream of a pipe is ignored thus we should avoid > using it.
You might want to say more specifically that we should avoid piping a git command into another one as this could mask a failure of the git command.
Show 18 quoted lines
> By writing out the output of the git command to a file, we > can test the exit codes of both the commands. > > Signed-off-by: Prathamesh <pc44800@gmail.com> > --- > t/t2027-worktree-list.sh | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) > > diff --git a/t/t2027-worktree-list.sh b/t/t2027-worktree-list.sh > index 848da5f..daa7a04 100755 > --- a/t/t2027-worktree-list.sh > +++ b/t/t2027-worktree-list.sh > @@ -31,7 +31,7 @@ test_expect_success '"list" all worktrees from main' ' > test_when_finished "rm -rf here && git worktree prune" && > git worktree add --detach here master && > echo "$(git -C here rev-parse --show-toplevel) $(git rev-parse --short HEAD) (detached HEAD)" >>expect && > - git worktree list | sed "s/ */ /g" >actual && > + git worktree list >out && sed "s/ */ /g" <out >actual &&
I think it's better if the 'sed' command is on a separate line.
Also you may have used just "out" instead of "<out" in the 'sed' command...
Show 9 quoted lines
> test_cmp expect actual > ' > > @@ -118,9 +118,9 @@ test_expect_success 'broken main worktree still at the top' ' > cd linked && > echo "worktree $(pwd)" >expected && > echo "ref: .broken" >../.git/HEAD && > - git worktree list --porcelain | head -n 3 >actual && > + git worktree list --porcelain >out && head -n 3 out >actual &&
... as above you use "out" not "<out" in the 'head' command.
Show 6 quoted lines
> test_cmp ../expected actual && > - git worktree list | head -n 1 >actual.2 && > + git worktree list >out && head -n 1 out >actual.2 && > grep -F "(error)" actual.2 > ) > '