A long time ago, for some reason I was not happy with match_pathspec(). I created a better version, match_pathspec_depth() that was suppose to replace match_pathspec() eventually. match_pathspec() has finally been gone since 6 months ago. Use the shorter name for match_pathspec_depth(). Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			110 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
test_description='test case insensitive pathspec limiting'
 | 
						|
. ./test-lib.sh
 | 
						|
 | 
						|
if test_have_prereq CASE_INSENSITIVE_FS
 | 
						|
then
 | 
						|
	skip_all='skipping case sensitive tests - case insensitive file system'
 | 
						|
	test_done
 | 
						|
fi
 | 
						|
 | 
						|
test_expect_success 'create commits with glob characters' '
 | 
						|
	test_commit bar bar &&
 | 
						|
	test_commit bAr bAr &&
 | 
						|
	test_commit BAR BAR &&
 | 
						|
	mkdir foo &&
 | 
						|
	test_commit foo/bar foo/bar &&
 | 
						|
	test_commit foo/bAr foo/bAr &&
 | 
						|
	test_commit foo/BAR foo/BAR &&
 | 
						|
	mkdir fOo &&
 | 
						|
	test_commit fOo/bar fOo/bar &&
 | 
						|
	test_commit fOo/bAr fOo/bAr &&
 | 
						|
	test_commit fOo/BAR fOo/BAR &&
 | 
						|
	mkdir FOO &&
 | 
						|
	test_commit FOO/bar FOO/bar &&
 | 
						|
	test_commit FOO/bAr FOO/bAr &&
 | 
						|
	test_commit FOO/BAR FOO/BAR
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success 'tree_entry_interesting matches bar' '
 | 
						|
	echo bar >expect &&
 | 
						|
	git log --format=%s -- "bar" >actual &&
 | 
						|
	test_cmp expect actual
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success 'tree_entry_interesting matches :(icase)bar' '
 | 
						|
	cat <<-EOF >expect &&
 | 
						|
	BAR
 | 
						|
	bAr
 | 
						|
	bar
 | 
						|
	EOF
 | 
						|
	git log --format=%s -- ":(icase)bar" >actual &&
 | 
						|
	test_cmp expect actual
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success 'tree_entry_interesting matches :(icase)bar with prefix' '
 | 
						|
	cat <<-EOF >expect &&
 | 
						|
	fOo/BAR
 | 
						|
	fOo/bAr
 | 
						|
	fOo/bar
 | 
						|
	EOF
 | 
						|
	( cd fOo && git log --format=%s -- ":(icase)bar" ) >actual &&
 | 
						|
	test_cmp expect actual
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success 'tree_entry_interesting matches :(icase)bar with empty prefix' '
 | 
						|
	cat <<-EOF >expect &&
 | 
						|
	FOO/BAR
 | 
						|
	FOO/bAr
 | 
						|
	FOO/bar
 | 
						|
	fOo/BAR
 | 
						|
	fOo/bAr
 | 
						|
	fOo/bar
 | 
						|
	foo/BAR
 | 
						|
	foo/bAr
 | 
						|
	foo/bar
 | 
						|
	EOF
 | 
						|
	( cd fOo && git log --format=%s -- ":(icase)../foo/bar" ) >actual &&
 | 
						|
	test_cmp expect actual
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success 'match_pathspec matches :(icase)bar' '
 | 
						|
	cat <<-EOF >expect &&
 | 
						|
	BAR
 | 
						|
	bAr
 | 
						|
	bar
 | 
						|
	EOF
 | 
						|
	git ls-files ":(icase)bar" >actual &&
 | 
						|
	test_cmp expect actual
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success 'match_pathspec matches :(icase)bar with prefix' '
 | 
						|
	cat <<-EOF >expect &&
 | 
						|
	fOo/BAR
 | 
						|
	fOo/bAr
 | 
						|
	fOo/bar
 | 
						|
	EOF
 | 
						|
	( cd fOo && git ls-files --full-name ":(icase)bar" ) >actual &&
 | 
						|
	test_cmp expect actual
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success 'match_pathspec matches :(icase)bar with empty prefix' '
 | 
						|
	cat <<-EOF >expect &&
 | 
						|
	bar
 | 
						|
	fOo/BAR
 | 
						|
	fOo/bAr
 | 
						|
	fOo/bar
 | 
						|
	EOF
 | 
						|
	( cd fOo && git ls-files --full-name ":(icase)bar" ../bar ) >actual &&
 | 
						|
	test_cmp expect actual
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success '"git diff" can take magic :(icase) pathspec' '
 | 
						|
	echo FOO/BAR >expect &&
 | 
						|
	git diff --name-only HEAD^ HEAD -- ":(icase)foo/bar" >actual &&
 | 
						|
	test_cmp expect actual
 | 
						|
'
 | 
						|
 | 
						|
test_done
 |