Re: [RFC PATCH 2/2] t2402: add test to locked linked worktree marker

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux