]> git.ipfire.org Git - thirdparty/git.git/blob - t/t6131-pathspec-icase.sh
path.c: don't call the match function without value in trie_find()
[thirdparty/git.git] / t / t6131-pathspec-icase.sh
1 #!/bin/sh
2
3 test_description='test case insensitive pathspec limiting'
4 . ./test-lib.sh
5
6 if test_have_prereq CASE_INSENSITIVE_FS
7 then
8 skip_all='skipping case sensitive tests - case insensitive file system'
9 test_done
10 fi
11
12 test_expect_success 'create commits with glob characters' '
13 test_commit bar bar &&
14 test_commit bAr bAr &&
15 test_commit BAR BAR &&
16 mkdir foo &&
17 test_commit foo/bar foo/bar &&
18 test_commit foo/bAr foo/bAr &&
19 test_commit foo/BAR foo/BAR &&
20 mkdir fOo &&
21 test_commit fOo/bar fOo/bar &&
22 test_commit fOo/bAr fOo/bAr &&
23 test_commit fOo/BAR fOo/BAR &&
24 mkdir FOO &&
25 test_commit FOO/bar FOO/bar &&
26 test_commit FOO/bAr FOO/bAr &&
27 test_commit FOO/BAR FOO/BAR
28 '
29
30 test_expect_success 'tree_entry_interesting matches bar' '
31 echo bar >expect &&
32 git log --format=%s -- "bar" >actual &&
33 test_cmp expect actual
34 '
35
36 test_expect_success 'tree_entry_interesting matches :(icase)bar' '
37 cat <<-EOF >expect &&
38 BAR
39 bAr
40 bar
41 EOF
42 git log --format=%s -- ":(icase)bar" >actual &&
43 test_cmp expect actual
44 '
45
46 test_expect_success 'tree_entry_interesting matches :(icase)bar with prefix' '
47 cat <<-EOF >expect &&
48 fOo/BAR
49 fOo/bAr
50 fOo/bar
51 EOF
52 ( cd fOo && git log --format=%s -- ":(icase)bar" ) >actual &&
53 test_cmp expect actual
54 '
55
56 test_expect_success 'tree_entry_interesting matches :(icase)bar with empty prefix' '
57 cat <<-EOF >expect &&
58 FOO/BAR
59 FOO/bAr
60 FOO/bar
61 fOo/BAR
62 fOo/bAr
63 fOo/bar
64 foo/BAR
65 foo/bAr
66 foo/bar
67 EOF
68 ( cd fOo && git log --format=%s -- ":(icase)../foo/bar" ) >actual &&
69 test_cmp expect actual
70 '
71
72 test_expect_success 'match_pathspec matches :(icase)bar' '
73 cat <<-EOF >expect &&
74 BAR
75 bAr
76 bar
77 EOF
78 git ls-files ":(icase)bar" >actual &&
79 test_cmp expect actual
80 '
81
82 test_expect_success 'match_pathspec matches :(icase)bar with prefix' '
83 cat <<-EOF >expect &&
84 fOo/BAR
85 fOo/bAr
86 fOo/bar
87 EOF
88 ( cd fOo && git ls-files --full-name ":(icase)bar" ) >actual &&
89 test_cmp expect actual
90 '
91
92 test_expect_success 'match_pathspec matches :(icase)bar with empty prefix' '
93 cat <<-EOF >expect &&
94 bar
95 fOo/BAR
96 fOo/bAr
97 fOo/bar
98 EOF
99 ( cd fOo && git ls-files --full-name ":(icase)bar" ../bar ) >actual &&
100 test_cmp expect actual
101 '
102
103 test_expect_success '"git diff" can take magic :(icase) pathspec' '
104 echo FOO/BAR >expect &&
105 git diff --name-only HEAD^ HEAD -- ":(icase)foo/bar" >actual &&
106 test_cmp expect actual
107 '
108
109 test_done