On Mon, Sep 28, 2020 at 11:50 AM Rafael Silva <rafaeloliveira.cs@xxxxxxxxx> wrote: > Test the output of the `worktree list` command to show when > a linked worktree is locked and test to not mistakenly > mark main or unlocked worktrees. In addition to Junio's review comments... > Signed-off-by: Rafael Silva <rafaeloliveira.cs@xxxxxxxxx> > --- > diff --git a/t/t2402-worktree-list.sh b/t/t2402-worktree-list.sh > @@ -61,6 +61,19 @@ test_expect_success '"list" all worktrees --porcelain' ' > +test_expect_success 'show locked worktree with (locked)' ' Existing test titles in this script seem to follow a particular pattern (for the most part). Perhaps this could say instead: test_expect_success '"list" all worktrees with "locked"' ' > + echo "$(git rev-parse --show-toplevel) $(git rev-parse --short HEAD) [$(git symbolic-ref --short HEAD)]" >expect && I see that this is following existing practice in this script of piling up $(git ...) invocations which can lose the individual exit codes, so I can't complain about it, but I'll note that these days we'd more likely than not try to preserve the exit codes, perhaps like this: path=$(git rev-parse --show-toplevel) && rev=$(git rev-parse --short HEAD) && sym=$(git symbolic-ref --short HEAD) && echo "$path $rev [$sym]" >expect && However, that gets verbose since you're doing it for multiple lines (below). > + test_when_finished "rm -rf locked unlocked out actual expect && git worktree prune" && > + git worktree add --detach locked master && > + git worktree add --detach unlocked master && > + git worktree lock locked && > + echo "$(git -C locked rev-parse --show-toplevel) $(git rev-parse --short HEAD) (detached HEAD) (locked)" >>expect && > + echo "$(git -C unlocked rev-parse --show-toplevel) $(git rev-parse --short HEAD) (detached HEAD)" >>expect && > + git worktree list >out && > + sed "s/ */ /g" <out >actual && > + test_cmp expect actual > +' I realize that Junio proposed an alternate simpler approach which checks specifically the attribute in which you are interested, but here's yet another (typed-in-email) approach you could use: test_when_finished "..." && git worktree add --detach locked master && git worktree add --detach unlocked master && git worktree list >out && sed '/\/locked/s/$/ (locked)/' out >expect && git worktree lock locked && git worktree list >actual && test_cmp expect actual