Re: [PATCH 01/20] branch tests: test for errno propagating on failing read
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Oct 14, 2021, 01:57 UTC
- Message-ID
- <CAPig+cQ7OqYi3T9GHh36JAsYfyiW8RJsLaztnhcvs2iWjsp9tw@mail.gmail.com>
- In-Reply-To
- <patch-01.20-bea88e382c0-20211013T235900Z-avarab@gmail.com>
On Wed, Oct 13, 2021 at 8:07 PM Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:
Show 28 quoted lines
> Add a test for "git branch" to cover the case where .git/refs is > symlinked. To check availability, refs_verify_refname_available() will > run refs_read_raw_ref() on each prefix, leading to a read() from > .git/refs (which is a directory). > > It would probably be more robust to re-issue the lstat() as a normal > stat(), in which case, we would fall back to the directory case, but > for now let's just test for the existing behavior as-is. This test > covers a regression in a commit that only ever made it to "next", see > [1]. > > Signed-off-by: Han-Wen Nienhuys <hanwen@google.com> > Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> > --- > diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh > @@ -731,6 +731,26 @@ test_expect_success SYMLINKS 'git branch -m u v should fail when the reflog for > +test_expect_success SYMLINKS 'git branch -m with symlinked .git/refs' ' > + test_when_finished "rm -rf subdir" && > + git init subdir && > + > + ( > + cd subdir && > + for d in refs objects packed-refs > + do > + rm -rf .git/$d && > + ln -s ../../.git/$d .git/$d > + done > + ) &&
Amend the last line of the loop body:
ln -s ../../.git/$d .git/$d || exit 1
Show 7 quoted lines
> + git --git-dir subdir/.git/ branch rename-src && > + git rev-parse rename-src >expect && > + git --git-dir subdir/.git/ branch -m rename-src rename-dest && > + git rev-parse rename-dest >actual && > + test_cmp expect actual && > + git branch -D rename-dest > +'