@@ -47,53 +47,55 @@ static void assert_condition_includes(const char *keyword, const char *path, boo
4747 git_config_free (cfg );
4848}
4949
50+ static char * sandbox_path (git_buf * buf , const char * suffix )
51+ {
52+ char * path = p_realpath (clar_sandbox_path (), NULL );
53+ cl_assert (path );
54+ cl_git_pass (git_buf_attach (buf , path , 0 ));
55+ cl_git_pass (git_buf_joinpath (buf , buf -> ptr , suffix ));
56+ return buf -> ptr ;
57+ }
58+
5059void test_config_conditionals__gitdir (void )
5160{
5261 git_buf path = GIT_BUF_INIT ;
53- char * sandbox_path ;
5462
5563 assert_condition_includes ("gitdir" , ROOT_PREFIX "/" , true);
56- assert_condition_includes ("gitdir" , "empty_standard_repo" , true);
64+ assert_condition_includes ("gitdir" , "empty_stand" , false);
65+ assert_condition_includes ("gitdir" , "empty_stand/" , false);
66+ assert_condition_includes ("gitdir" , "empty_stand/.git" , false);
67+ assert_condition_includes ("gitdir" , "empty_stand/.git/" , false);
68+ assert_condition_includes ("gitdir" , "empty_stand*/" , true);
69+ assert_condition_includes ("gitdir" , "empty_stand*/.git" , true);
70+ assert_condition_includes ("gitdir" , "empty_stand*/.git/" , false);
5771 assert_condition_includes ("gitdir" , "empty_standard_repo/" , true);
58- assert_condition_includes ("gitdir" , "./" , true);
72+ assert_condition_includes ("gitdir" , "empty_standard_repo/.git" , true);
73+ assert_condition_includes ("gitdir" , "empty_standard_repo/.git/" , false);
74+
75+ assert_condition_includes ("gitdir" , "./" , false);
5976
6077 assert_condition_includes ("gitdir" , ROOT_PREFIX "/nonexistent" , false);
6178 assert_condition_includes ("gitdir" , ROOT_PREFIX "/empty_standard_repo" , false);
62- assert_condition_includes ("gitdir" , "empty_stand" , false);
6379 assert_condition_includes ("gitdir" , "~/empty_standard_repo" , false);
6480
65- sandbox_path = p_realpath (clar_sandbox_path (), NULL );
81+ assert_condition_includes ("gitdir" , sandbox_path (& path , "/" ), true);
82+ assert_condition_includes ("gitdir" , sandbox_path (& path , "/**" ), true);
6683
67- git_buf_joinpath (& path , sandbox_path , "/" );
68- assert_condition_includes ("gitdir" , path .ptr , true);
84+ assert_condition_includes ("gitdir" , sandbox_path (& path , "empty_standard_repo/" ), true);
85+ assert_condition_includes ("gitdir" , sandbox_path (& path , "empty_standard_repo/" ), true);
86+ assert_condition_includes ("gitdir" , sandbox_path (& path , "Empty_Standard_Repo" ), false);
87+ assert_condition_includes ("gitdir" , sandbox_path (& path , "Empty_Standard_Repo/" ), false);
6988
70- git_buf_joinpath (& path , sandbox_path , "/*" );
71- assert_condition_includes ("gitdir" , path .ptr , true);
72-
73- git_buf_joinpath (& path , sandbox_path , "empty_standard_repo" );
74- assert_condition_includes ("gitdir" , path .ptr , true);
75-
76- git_buf_joinpath (& path , sandbox_path , "Empty_Standard_Repo" );
77- assert_condition_includes ("gitdir" , path .ptr , false);
78-
79- git__free (sandbox_path );
8089 git_buf_dispose (& path );
8190}
8291
8392void test_config_conditionals__gitdir_i (void )
8493{
8594 git_buf path = GIT_BUF_INIT ;
86- char * sandbox_path ;
87-
88- sandbox_path = p_realpath (clar_sandbox_path (), NULL );
89-
90- git_buf_joinpath (& path , sandbox_path , "empty_standard_repo" );
91- assert_condition_includes ("gitdir/i" , path .ptr , true);
9295
93- git_buf_joinpath ( & path , sandbox_path , "EMPTY_STANDARD_REPO" );
94- assert_condition_includes ("gitdir/i" , path . ptr , true);
96+ assert_condition_includes ( "gitdir/i" , sandbox_path ( & path , "empty_standard_repo/" ), true );
97+ assert_condition_includes ("gitdir/i" , sandbox_path ( & path , "EMPTY_STANDARD_REPO/" ) , true);
9598
96- git__free (sandbox_path );
9799 git_buf_dispose (& path );
98100}
99101
0 commit comments