From: Junio C Hamano Date: Thu, 24 Sep 2026 22:08:39 GMT Subject: Re: [RFC PATCH 1/3] t0009: add tests to cover more error reporting scenarios Message-ID: In-Reply-To: <20260924120502.2642141-2-kaartic.sivaraam@gmail.com> Kaartic Sivaraam writes: > Introduce few more tests to t0009 to cover error reporting scenarios > when --git-dir is used. > > Signed-off-by: Kaartic Sivaraam > --- > t/t0009-git-dir-validation.sh | 36 +++++++++++++++++++++++++++++++++++ > 1 file changed, 36 insertions(+) > > diff --git a/t/t0009-git-dir-validation.sh b/t/t0009-git-dir-validation.sh > index 4cba478e50..244dc07c0e 100755 > --- a/t/t0009-git-dir-validation.sh > +++ b/t/t0009-git-dir-validation.sh > @@ -74,4 +74,40 @@ test_expect_success 'setup: .git as an empty directory is ignored' ' > ) > ' > > +test_expect_success 'setup: custom git directory with missing HEAD is rejected' ' > + test_when_finished "rm -rf parent/empty-dir" && > + mkdir -p parent/empty-dir && > + ( > + test_must_fail git --git-dir parent/empty-dir rev-parse --is-bare-repository 2>stderr && > + test_grep "not a git repository" stderr > + ) > +' Why subshell? > + > +test_expect_success 'setup: custom git directory with HEAD as a symlink outside refs/ is rejected' ' > + test_when_finished "rm -rf parent/head-as-link-to-garbage" && > + mkdir -p parent/head-as-link-to-garbage && > + ( > + cd parent/head-as-link-to-garbage && > + git init --bare real-repo && > + touch garbage && > + rm real-repo/HEAD && > + ln -s ../garbage real-repo/HEAD && > + test_must_fail git --git-dir real-repo rev-parse --is-bare-repository 2>stderr && > + test_grep "not a git repository" stderr > + ) > +' > + > +test_expect_success 'setup: custom git directory with invalid GIT_OBJECT_DIRECTORY configuration is rejected' ' > + test_when_finished "rm -rf parent/invalid-git-object-directory-config" && > + mkdir -p parent/invalid-git-object-directory-config && > + ( > + cd parent/invalid-git-object-directory-config && > + git init --bare real-repo && > + test_must_fail env GIT_OBJECT_DIRECTORY="$(pwd)/does-not-exist" \ > + git --git-dir real-repo rev-parse --is-bare-repository 2>stderr && > + test_grep "not a git repository" stderr > + ) > +' > + > + > test_done