git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC PATCH 1/3] t0009: add tests to cover more error reporting scenarios

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 24, 2026, 22:08 UTC
Message-ID
<xmqqjyoaz4ig.fsf@gitster.g>
In-Reply-To
<20260924120502.2642141-2-kaartic.sivaraam@gmail.com>
Kaartic Sivaraam <kaartic.sivaraam@gmail.com> writes:
Show 24 quoted lines
> Introduce few more tests to t0009 to cover error reporting scenarios
> when --git-dir is used.
>
> Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
> ---
>  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?
Show 29 quoted lines
> +
> +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
Previous: Kaartic SivaraamNext: Kaartic Sivaraam
Message 3 of 20 in “Improve error reporting to mention "why" a directory is not a repository”
  1. 0/3 Improve error reporting to mention "why" a directory is not a repositoryKaartic Sivaraam, Sep 24, 2026
  2. 1/3 t0009: add tests to cover more error reporting scenariosKaartic Sivaraam, Sep 24, 2026
  3. Junio C HamanoSep 24, 2026
  4. Kaartic SivaraamSep 25, 2026
  5. 2/3 setup: introduce new helper 'is_git_directory_verbose'Kaartic Sivaraam, Sep 24, 2026
  6. Junio C HamanoSep 24, 2026
  7. Kaartic SivaraamSep 25, 2026
  8. 3/3 setup: communicate why a directory is not a valid git directoryKaartic Sivaraam, Sep 24, 2026
  9. Junio C HamanoSep 24, 2026
  10. Kaartic SivaraamSep 25, 2026
  11. 0/4 Improve error reporting to mention "why" a directory is not a repositoryKaartic Sivaraam, Sep 29, 2026
  12. 1/4 setup: normalize an if-else to follow our conventionKaartic Sivaraam, Sep 29, 2026
  13. 2/4 t0009: add tests to cover more error reporting scenariosKaartic Sivaraam, Sep 29, 2026
  14. 3/4 setup: introduce new helper 'is_git_directory_verbose'Kaartic Sivaraam, Sep 29, 2026
  15. Patrick SteinhardtSep 30, 2026
  16. Kaartic SivaraamOct 5, 2026
  17. Junio C HamanoSep 30, 2026
  18. 4/4 setup: communicate why a directory is not a valid git directoryKaartic Sivaraam, Sep 29, 2026
  19. Patrick SteinhardtSep 30, 2026
  20. Kaartic SivaraamOct 5, 2026

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.