mirror of
				https://git.proxmox.com/git/libgit2
				synced 2025-11-04 07:09:14 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			386 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			386 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#include "clar_libgit2.h"
 | 
						|
#include "git2/pathspec.h"
 | 
						|
 | 
						|
static git_repository *g_repo;
 | 
						|
 | 
						|
void test_repo_pathspec__initialize(void)
 | 
						|
{
 | 
						|
	g_repo = cl_git_sandbox_init("status");
 | 
						|
}
 | 
						|
 | 
						|
void test_repo_pathspec__cleanup(void)
 | 
						|
{
 | 
						|
	cl_git_sandbox_cleanup();
 | 
						|
	g_repo = NULL;
 | 
						|
}
 | 
						|
 | 
						|
static char *str0[] = { "*_file", "new_file", "garbage" };
 | 
						|
static char *str1[] = { "*_FILE", "NEW_FILE", "GARBAGE" };
 | 
						|
static char *str2[] = { "staged_*" };
 | 
						|
static char *str3[] = { "!subdir", "*_file", "new_file" };
 | 
						|
static char *str4[] = { "*" };
 | 
						|
static char *str5[] = { "S*" };
 | 
						|
 | 
						|
void test_repo_pathspec__workdir0(void)
 | 
						|
{
 | 
						|
	git_strarray s;
 | 
						|
	git_pathspec *ps;
 | 
						|
	git_pathspec_match_list *m;
 | 
						|
 | 
						|
	/* { "*_file", "new_file", "garbage" } */
 | 
						|
	s.strings = str0; s.count = ARRAY_SIZE(str0);
 | 
						|
	cl_git_pass(git_pathspec_new(&ps, &s));
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_workdir(&m, g_repo, 0, ps));
 | 
						|
	cl_assert_equal_sz(10, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_sz(0, git_pathspec_match_list_failed_entrycount(m));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_workdir(&m, g_repo,
 | 
						|
		GIT_PATHSPEC_FIND_FAILURES, ps));
 | 
						|
	cl_assert_equal_sz(10, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_sz(1, git_pathspec_match_list_failed_entrycount(m));
 | 
						|
	cl_assert_equal_s("garbage", git_pathspec_match_list_failed_entry(m, 0));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_workdir(&m, g_repo,
 | 
						|
		GIT_PATHSPEC_FIND_FAILURES | GIT_PATHSPEC_FAILURES_ONLY, ps));
 | 
						|
	cl_assert_equal_sz(0, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_sz(1, git_pathspec_match_list_failed_entrycount(m));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	git_pathspec_free(ps);
 | 
						|
}
 | 
						|
 | 
						|
void test_repo_pathspec__workdir1(void)
 | 
						|
{
 | 
						|
	git_strarray s;
 | 
						|
	git_pathspec *ps;
 | 
						|
	git_pathspec_match_list *m;
 | 
						|
 | 
						|
	/* { "*_FILE", "NEW_FILE", "GARBAGE" } */
 | 
						|
	s.strings = str1; s.count = ARRAY_SIZE(str1);
 | 
						|
	cl_git_pass(git_pathspec_new(&ps, &s));
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_workdir(&m, g_repo,
 | 
						|
		GIT_PATHSPEC_IGNORE_CASE, ps));
 | 
						|
	cl_assert_equal_sz(10, git_pathspec_match_list_entrycount(m));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_workdir(&m, g_repo,
 | 
						|
		GIT_PATHSPEC_USE_CASE, ps));
 | 
						|
	cl_assert_equal_sz(0, git_pathspec_match_list_entrycount(m));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	cl_git_fail(git_pathspec_match_workdir(&m, g_repo,
 | 
						|
		GIT_PATHSPEC_USE_CASE | GIT_PATHSPEC_NO_MATCH_ERROR, ps));
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_workdir(&m, g_repo,
 | 
						|
		GIT_PATHSPEC_IGNORE_CASE | GIT_PATHSPEC_FIND_FAILURES, ps));
 | 
						|
	cl_assert_equal_sz(10, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_sz(1, git_pathspec_match_list_failed_entrycount(m));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_workdir(&m, g_repo,
 | 
						|
		GIT_PATHSPEC_USE_CASE | GIT_PATHSPEC_FIND_FAILURES, ps));
 | 
						|
	cl_assert_equal_sz(0, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_sz(3, git_pathspec_match_list_failed_entrycount(m));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	git_pathspec_free(ps);
 | 
						|
}
 | 
						|
 | 
						|
void test_repo_pathspec__workdir2(void)
 | 
						|
{
 | 
						|
	git_strarray s;
 | 
						|
	git_pathspec *ps;
 | 
						|
	git_pathspec_match_list *m;
 | 
						|
 | 
						|
	/* { "staged_*" } */
 | 
						|
	s.strings = str2; s.count = ARRAY_SIZE(str2);
 | 
						|
	cl_git_pass(git_pathspec_new(&ps, &s));
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_workdir(&m, g_repo, 0, ps));
 | 
						|
	cl_assert_equal_sz(5, git_pathspec_match_list_entrycount(m));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_workdir(&m, g_repo,
 | 
						|
		GIT_PATHSPEC_FIND_FAILURES, ps));
 | 
						|
	cl_assert_equal_sz(5, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_sz(0, git_pathspec_match_list_failed_entrycount(m));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	cl_git_fail(git_pathspec_match_workdir(&m, g_repo,
 | 
						|
		GIT_PATHSPEC_NO_GLOB | GIT_PATHSPEC_NO_MATCH_ERROR, ps));
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_workdir(&m, g_repo,
 | 
						|
		GIT_PATHSPEC_NO_GLOB | GIT_PATHSPEC_FIND_FAILURES, ps));
 | 
						|
	cl_assert_equal_sz(0, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_sz(1, git_pathspec_match_list_failed_entrycount(m));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	git_pathspec_free(ps);
 | 
						|
}
 | 
						|
 | 
						|
void test_repo_pathspec__workdir3(void)
 | 
						|
{
 | 
						|
	git_strarray s;
 | 
						|
	git_pathspec *ps;
 | 
						|
	git_pathspec_match_list *m;
 | 
						|
 | 
						|
	/* { "!subdir", "*_file", "new_file" } */
 | 
						|
	s.strings = str3; s.count = ARRAY_SIZE(str3);
 | 
						|
	cl_git_pass(git_pathspec_new(&ps, &s));
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_workdir(&m, g_repo, 0, ps));
 | 
						|
	cl_assert_equal_sz(7, git_pathspec_match_list_entrycount(m));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_workdir(&m, g_repo,
 | 
						|
		GIT_PATHSPEC_FIND_FAILURES, ps));
 | 
						|
	cl_assert_equal_sz(7, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_sz(0, git_pathspec_match_list_failed_entrycount(m));
 | 
						|
 | 
						|
	cl_assert_equal_s("current_file", git_pathspec_match_list_entry(m, 0));
 | 
						|
	cl_assert_equal_s("modified_file", git_pathspec_match_list_entry(m, 1));
 | 
						|
	cl_assert_equal_s("new_file", git_pathspec_match_list_entry(m, 2));
 | 
						|
	cl_assert_equal_s("staged_changes_modified_file", git_pathspec_match_list_entry(m, 3));
 | 
						|
	cl_assert_equal_s("staged_delete_modified_file", git_pathspec_match_list_entry(m, 4));
 | 
						|
	cl_assert_equal_s("staged_new_file", git_pathspec_match_list_entry(m, 5));
 | 
						|
	cl_assert_equal_s("staged_new_file_modified_file", git_pathspec_match_list_entry(m, 6));
 | 
						|
	cl_assert_equal_s(NULL, git_pathspec_match_list_entry(m, 7));
 | 
						|
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	git_pathspec_free(ps);
 | 
						|
}
 | 
						|
 | 
						|
void test_repo_pathspec__workdir4(void)
 | 
						|
{
 | 
						|
	git_strarray s;
 | 
						|
	git_pathspec *ps;
 | 
						|
	git_pathspec_match_list *m;
 | 
						|
 | 
						|
	/* { "*" } */
 | 
						|
	s.strings = str4; s.count = ARRAY_SIZE(str4);
 | 
						|
	cl_git_pass(git_pathspec_new(&ps, &s));
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_workdir(&m, g_repo, 0, ps));
 | 
						|
	cl_assert_equal_sz(13, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_s("\xE8\xBF\x99", git_pathspec_match_list_entry(m, 12));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	git_pathspec_free(ps);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void test_repo_pathspec__index0(void)
 | 
						|
{
 | 
						|
	git_index *idx;
 | 
						|
	git_strarray s;
 | 
						|
	git_pathspec *ps;
 | 
						|
	git_pathspec_match_list *m;
 | 
						|
 | 
						|
	cl_git_pass(git_repository_index(&idx, g_repo));
 | 
						|
 | 
						|
	/* { "*_file", "new_file", "garbage" } */
 | 
						|
	s.strings = str0; s.count = ARRAY_SIZE(str0);
 | 
						|
	cl_git_pass(git_pathspec_new(&ps, &s));
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_index(&m, idx, 0, ps));
 | 
						|
	cl_assert_equal_sz(9, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_sz(0, git_pathspec_match_list_failed_entrycount(m));
 | 
						|
	cl_assert_equal_s("current_file", git_pathspec_match_list_entry(m, 0));
 | 
						|
	cl_assert_equal_s("modified_file", git_pathspec_match_list_entry(m, 1));
 | 
						|
	cl_assert_equal_s("staged_changes_modified_file", git_pathspec_match_list_entry(m, 2));
 | 
						|
	cl_assert_equal_s("staged_new_file", git_pathspec_match_list_entry(m, 3));
 | 
						|
	cl_assert_equal_s("staged_new_file_deleted_file", git_pathspec_match_list_entry(m, 4));
 | 
						|
	cl_assert_equal_s("staged_new_file_modified_file", git_pathspec_match_list_entry(m, 5));
 | 
						|
	cl_assert_equal_s("subdir/current_file", git_pathspec_match_list_entry(m, 6));
 | 
						|
	cl_assert_equal_s("subdir/deleted_file", git_pathspec_match_list_entry(m, 7));
 | 
						|
	cl_assert_equal_s("subdir/modified_file", git_pathspec_match_list_entry(m, 8));
 | 
						|
	cl_assert_equal_s(NULL, git_pathspec_match_list_entry(m, 9));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_index(&m, idx,
 | 
						|
		GIT_PATHSPEC_FIND_FAILURES, ps));
 | 
						|
	cl_assert_equal_sz(9, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_sz(2, git_pathspec_match_list_failed_entrycount(m));
 | 
						|
	cl_assert_equal_s("new_file", git_pathspec_match_list_failed_entry(m, 0));
 | 
						|
	cl_assert_equal_s("garbage", git_pathspec_match_list_failed_entry(m, 1));
 | 
						|
	cl_assert_equal_s(NULL, git_pathspec_match_list_failed_entry(m, 2));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	git_pathspec_free(ps);
 | 
						|
	git_index_free(idx);
 | 
						|
}
 | 
						|
 | 
						|
void test_repo_pathspec__index1(void)
 | 
						|
{
 | 
						|
	/* Currently the USE_CASE and IGNORE_CASE flags don't work on the
 | 
						|
	 * index because the index sort order for the index iterator is
 | 
						|
	 * set by the index itself.  I think the correct fix is for the
 | 
						|
	 * index not to embed a global sort order but to support traversal
 | 
						|
	 * in either case sensitive or insensitive order in a stateless
 | 
						|
	 * manner.
 | 
						|
	 *
 | 
						|
	 * Anyhow, as it is, there is no point in doing this test.
 | 
						|
	 */
 | 
						|
#if 0
 | 
						|
	git_index *idx;
 | 
						|
	git_strarray s;
 | 
						|
	git_pathspec *ps;
 | 
						|
	git_pathspec_match_list *m;
 | 
						|
 | 
						|
	cl_git_pass(git_repository_index(&idx, g_repo));
 | 
						|
 | 
						|
	/* { "*_FILE", "NEW_FILE", "GARBAGE" } */
 | 
						|
	s.strings = str1; s.count = ARRAY_SIZE(str1);
 | 
						|
	cl_git_pass(git_pathspec_new(&ps, &s));
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_index(&m, idx,
 | 
						|
		GIT_PATHSPEC_USE_CASE, ps));
 | 
						|
	cl_assert_equal_sz(0, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_sz(0, git_pathspec_match_list_failed_entrycount(m));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_index(&m, idx,
 | 
						|
		GIT_PATHSPEC_USE_CASE | GIT_PATHSPEC_FIND_FAILURES, ps));
 | 
						|
	cl_assert_equal_sz(0, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_sz(3, git_pathspec_match_list_failed_entrycount(m));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_index(&m, idx,
 | 
						|
		GIT_PATHSPEC_IGNORE_CASE | GIT_PATHSPEC_FIND_FAILURES, ps));
 | 
						|
	cl_assert_equal_sz(10, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_sz(2, git_pathspec_match_list_failed_entrycount(m));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	git_pathspec_free(ps);
 | 
						|
	git_index_free(idx);
 | 
						|
#endif
 | 
						|
}
 | 
						|
 | 
						|
void test_repo_pathspec__tree0(void)
 | 
						|
{
 | 
						|
	git_object *tree;
 | 
						|
	git_strarray s;
 | 
						|
	git_pathspec *ps;
 | 
						|
	git_pathspec_match_list *m;
 | 
						|
 | 
						|
	/* { "*_file", "new_file", "garbage" } */
 | 
						|
	s.strings = str0; s.count = ARRAY_SIZE(str0);
 | 
						|
	cl_git_pass(git_pathspec_new(&ps, &s));
 | 
						|
 | 
						|
	cl_git_pass(git_revparse_single(&tree, g_repo, "HEAD~2^{tree}"));
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_tree(&m, (git_tree *)tree,
 | 
						|
		GIT_PATHSPEC_FIND_FAILURES, ps));
 | 
						|
	cl_assert_equal_sz(4, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_s("current_file", git_pathspec_match_list_entry(m, 0));
 | 
						|
	cl_assert_equal_s("modified_file", git_pathspec_match_list_entry(m, 1));
 | 
						|
	cl_assert_equal_s("staged_changes_modified_file", git_pathspec_match_list_entry(m, 2));
 | 
						|
	cl_assert_equal_s("staged_delete_modified_file", git_pathspec_match_list_entry(m, 3));
 | 
						|
	cl_assert_equal_s(NULL, git_pathspec_match_list_entry(m, 4));
 | 
						|
	cl_assert_equal_sz(2, git_pathspec_match_list_failed_entrycount(m));
 | 
						|
	cl_assert_equal_s("new_file", git_pathspec_match_list_failed_entry(m, 0));
 | 
						|
	cl_assert_equal_s("garbage", git_pathspec_match_list_failed_entry(m, 1));
 | 
						|
	cl_assert_equal_s(NULL, git_pathspec_match_list_failed_entry(m, 2));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	git_object_free(tree);
 | 
						|
 | 
						|
	cl_git_pass(git_revparse_single(&tree, g_repo, "HEAD^{tree}"));
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_tree(&m, (git_tree *)tree,
 | 
						|
		GIT_PATHSPEC_FIND_FAILURES, ps));
 | 
						|
	cl_assert_equal_sz(7, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_s("current_file", git_pathspec_match_list_entry(m, 0));
 | 
						|
	cl_assert_equal_s("modified_file", git_pathspec_match_list_entry(m, 1));
 | 
						|
	cl_assert_equal_s("staged_changes_modified_file", git_pathspec_match_list_entry(m, 2));
 | 
						|
	cl_assert_equal_s("staged_delete_modified_file", git_pathspec_match_list_entry(m, 3));
 | 
						|
	cl_assert_equal_s("subdir/current_file", git_pathspec_match_list_entry(m, 4));
 | 
						|
	cl_assert_equal_s("subdir/deleted_file", git_pathspec_match_list_entry(m, 5));
 | 
						|
	cl_assert_equal_s("subdir/modified_file", git_pathspec_match_list_entry(m, 6));
 | 
						|
	cl_assert_equal_s(NULL, git_pathspec_match_list_entry(m, 7));
 | 
						|
	cl_assert_equal_sz(2, git_pathspec_match_list_failed_entrycount(m));
 | 
						|
	cl_assert_equal_s("new_file", git_pathspec_match_list_failed_entry(m, 0));
 | 
						|
	cl_assert_equal_s("garbage", git_pathspec_match_list_failed_entry(m, 1));
 | 
						|
	cl_assert_equal_s(NULL, git_pathspec_match_list_failed_entry(m, 2));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	git_object_free(tree);
 | 
						|
 | 
						|
	git_pathspec_free(ps);
 | 
						|
}
 | 
						|
 | 
						|
void test_repo_pathspec__tree5(void)
 | 
						|
{
 | 
						|
	git_object *tree;
 | 
						|
	git_strarray s;
 | 
						|
	git_pathspec *ps;
 | 
						|
	git_pathspec_match_list *m;
 | 
						|
 | 
						|
	/* { "S*" } */
 | 
						|
	s.strings = str5; s.count = ARRAY_SIZE(str5);
 | 
						|
	cl_git_pass(git_pathspec_new(&ps, &s));
 | 
						|
 | 
						|
	cl_git_pass(git_revparse_single(&tree, g_repo, "HEAD~2^{tree}"));
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_tree(&m, (git_tree *)tree,
 | 
						|
		GIT_PATHSPEC_USE_CASE | GIT_PATHSPEC_FIND_FAILURES, ps));
 | 
						|
	cl_assert_equal_sz(0, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_sz(1, git_pathspec_match_list_failed_entrycount(m));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_tree(&m, (git_tree *)tree,
 | 
						|
		GIT_PATHSPEC_IGNORE_CASE | GIT_PATHSPEC_FIND_FAILURES, ps));
 | 
						|
	cl_assert_equal_sz(5, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_s("staged_changes", git_pathspec_match_list_entry(m, 0));
 | 
						|
	cl_assert_equal_s("staged_delete_modified_file", git_pathspec_match_list_entry(m, 4));
 | 
						|
	cl_assert_equal_sz(0, git_pathspec_match_list_failed_entrycount(m));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	git_object_free(tree);
 | 
						|
 | 
						|
	cl_git_pass(git_revparse_single(&tree, g_repo, "HEAD^{tree}"));
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_match_tree(&m, (git_tree *)tree,
 | 
						|
		GIT_PATHSPEC_IGNORE_CASE | GIT_PATHSPEC_FIND_FAILURES, ps));
 | 
						|
	cl_assert_equal_sz(9, git_pathspec_match_list_entrycount(m));
 | 
						|
	cl_assert_equal_s("staged_changes", git_pathspec_match_list_entry(m, 0));
 | 
						|
	cl_assert_equal_s("subdir.txt", git_pathspec_match_list_entry(m, 5));
 | 
						|
	cl_assert_equal_s("subdir/current_file", git_pathspec_match_list_entry(m, 6));
 | 
						|
	cl_assert_equal_sz(0, git_pathspec_match_list_failed_entrycount(m));
 | 
						|
	git_pathspec_match_list_free(m);
 | 
						|
 | 
						|
	git_object_free(tree);
 | 
						|
 | 
						|
	git_pathspec_free(ps);
 | 
						|
}
 | 
						|
 | 
						|
void test_repo_pathspec__in_memory(void)
 | 
						|
{
 | 
						|
	static char *strings[] = { "one", "two*", "!three*", "*four" };
 | 
						|
	git_strarray s = { strings, ARRAY_SIZE(strings) };
 | 
						|
	git_pathspec *ps;
 | 
						|
 | 
						|
	cl_git_pass(git_pathspec_new(&ps, &s));
 | 
						|
 | 
						|
	cl_assert(git_pathspec_matches_path(ps, 0, "one"));
 | 
						|
	cl_assert(!git_pathspec_matches_path(ps, 0, "ONE"));
 | 
						|
	cl_assert(git_pathspec_matches_path(ps, GIT_PATHSPEC_IGNORE_CASE, "ONE"));
 | 
						|
	cl_assert(git_pathspec_matches_path(ps, 0, "two"));
 | 
						|
	cl_assert(git_pathspec_matches_path(ps, 0, "two.txt"));
 | 
						|
	cl_assert(!git_pathspec_matches_path(ps, 0, "three.txt"));
 | 
						|
	cl_assert(git_pathspec_matches_path(ps, 0, "anything.four"));
 | 
						|
	cl_assert(!git_pathspec_matches_path(ps, 0, "three.four"));
 | 
						|
	cl_assert(!git_pathspec_matches_path(ps, 0, "nomatch"));
 | 
						|
	cl_assert(!git_pathspec_matches_path(ps, GIT_PATHSPEC_NO_GLOB, "two"));
 | 
						|
	cl_assert(git_pathspec_matches_path(ps, GIT_PATHSPEC_NO_GLOB, "two*"));
 | 
						|
	cl_assert(!git_pathspec_matches_path(ps, GIT_PATHSPEC_NO_GLOB, "anyfour"));
 | 
						|
	cl_assert(git_pathspec_matches_path(ps, GIT_PATHSPEC_NO_GLOB, "*four"));
 | 
						|
 | 
						|
	git_pathspec_free(ps);
 | 
						|
}
 |