@@ -68,41 +68,58 @@ void test_path_core__isvalid_standard(void)
6868void test_path_core__isvalid_standard_str (void )
6969{
7070 git_str str = GIT_STR_INIT_CONST ("foo/bar//zap" , 0 );
71+ unsigned int flags = GIT_FS_PATH_REJECT_EMPTY_COMPONENT ;
7172
7273 str .size = 0 ;
73- cl_assert_equal_b (false, git_fs_path_is_valid_str (& str , 0 ));
74+ cl_assert_equal_b (false, git_fs_path_is_valid_str (& str , flags ));
7475
7576 str .size = 3 ;
76- cl_assert_equal_b (true, git_fs_path_is_valid_str (& str , 0 ));
77+ cl_assert_equal_b (true, git_fs_path_is_valid_str (& str , flags ));
7778
7879 str .size = 4 ;
79- cl_assert_equal_b (false, git_fs_path_is_valid_str (& str , 0 ));
80+ cl_assert_equal_b (false, git_fs_path_is_valid_str (& str , flags ));
8081
8182 str .size = 5 ;
82- cl_assert_equal_b (true, git_fs_path_is_valid_str (& str , 0 ));
83+ cl_assert_equal_b (true, git_fs_path_is_valid_str (& str , flags ));
8384
8485 str .size = 7 ;
85- cl_assert_equal_b (true, git_fs_path_is_valid_str (& str , 0 ));
86+ cl_assert_equal_b (true, git_fs_path_is_valid_str (& str , flags ));
8687
8788 str .size = 8 ;
88- cl_assert_equal_b (false, git_fs_path_is_valid_str (& str , 0 ));
89+ cl_assert_equal_b (false, git_fs_path_is_valid_str (& str , flags ));
8990
9091 str .size = strlen (str .ptr );
91- cl_assert_equal_b (false, git_fs_path_is_valid_str (& str , 0 ));
92+ cl_assert_equal_b (false, git_fs_path_is_valid_str (& str , flags ));
9293}
9394
9495void test_path_core__isvalid_empty_dir_component (void )
9596{
96- cl_assert_equal_b (false, git_fs_path_is_valid ("foo//bar" , 0 ));
97+ unsigned int flags = GIT_FS_PATH_REJECT_EMPTY_COMPONENT ;
98+
99+ /* empty component */
100+ cl_assert_equal_b (true, git_fs_path_is_valid ("foo//bar" , 0 ));
101+
102+ /* leading slash */
103+ cl_assert_equal_b (true, git_fs_path_is_valid ("/" , 0 ));
104+ cl_assert_equal_b (true, git_fs_path_is_valid ("/foo" , 0 ));
105+ cl_assert_equal_b (true, git_fs_path_is_valid ("/foo/bar" , 0 ));
106+
107+ /* trailing slash */
108+ cl_assert_equal_b (true, git_fs_path_is_valid ("foo/" , 0 ));
109+ cl_assert_equal_b (true, git_fs_path_is_valid ("foo/bar/" , 0 ));
110+
111+
112+ /* empty component */
113+ cl_assert_equal_b (false, git_fs_path_is_valid ("foo//bar" , flags ));
97114
98115 /* leading slash */
99- cl_assert_equal_b (false, git_fs_path_is_valid ("/" , 0 ));
100- cl_assert_equal_b (false, git_fs_path_is_valid ("/foo" , 0 ));
101- cl_assert_equal_b (false, git_fs_path_is_valid ("/foo/bar" , 0 ));
116+ cl_assert_equal_b (false, git_fs_path_is_valid ("/" , flags ));
117+ cl_assert_equal_b (false, git_fs_path_is_valid ("/foo" , flags ));
118+ cl_assert_equal_b (false, git_fs_path_is_valid ("/foo/bar" , flags ));
102119
103120 /* trailing slash */
104- cl_assert_equal_b (false, git_fs_path_is_valid ("foo/" , 0 ));
105- cl_assert_equal_b (false, git_fs_path_is_valid ("foo/bar/" , 0 ));
121+ cl_assert_equal_b (false, git_fs_path_is_valid ("foo/" , flags ));
122+ cl_assert_equal_b (false, git_fs_path_is_valid ("foo/bar/" , flags ));
106123}
107124
108125void test_path_core__isvalid_dot_and_dotdot (void )
0 commit comments