Re: [RFC PATCH 2/2] t2402: add test to locked linked worktree marker
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Sep 30, 2020, 08:06 UTC
- Message-ID
- <CAPig+cSa4JZ0SaM9p+Jfvv_5h8mexRcKdiz=hSi37BG_sLsk7Q@mail.gmail.com>
- In-Reply-To
- <20200928154953.30396-3-rafaeloliveira.cs@gmail.com>
On Mon, Sep 28, 2020 at 11:50 AM Rafael Silva <rafaeloliveira.cs@gmail.com> 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...
Show 5 quoted lines
> Signed-off-by: Rafael Silva <rafaeloliveira.cs@gmail.com> > --- > 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).
Show 10 quoted lines
> + 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